نمایش نتایج 1 تا 7 از 7

نام تاپیک: صفحه بندی دیتابیس در جاوا

  1. #1

    صفحه بندی دیتابیس در جاوا

    سلام و خسته نباشید و ممنون از وقتی که میذارید و راهنمایی میکنید
    طبق معمول من تازه کار و سوال شاید پیش پا افتاده
    من یه قطعه کد نوشتم برای صفحه بندی دیتابیس که با ترکیب چند تا قطعه کد به برنامه گفتم هرباز 10 خط از دیتابیس رو فراخوانی کنه
    با زدن دکمه بعدی باز بره 10 خط بعدی رو لود کنه
    هر بار فقط 10 خط فراخوانی میشه و نمایش داده میشه حالا چه دکمه بعدی رو کاربر بزنه میره 10 خط بعدی و یا دکه قیلی رو بزنه بر میگرده 10 خط قبلی رو نمایش میده خواستم با این کار از ترافیکی که توی شبکه میاد جلوگیری کنم
    برنامه کاملا درست کار میکنه و مشکلی با این نوع صفحه بندی ندارم
    ولی توی لاگ برنامه کلی ارور نشون میده که نمیفهمم علت این ارورها چیه
    قطعه کدی که ارور میده این هستش



    private void paging_Table() {
    if (Clas.classpaging.connect_to_db()) {
    if (Clas.classpaging.query_to_db("SELECT COUNT(*) AS rowcount FROM tbl_patient")) {
    try {
    ResultSet res_temp = Clas.classpaging.getResultSet();
    res_temp.next();
    double m = res_temp.getInt("rowcount");
    res_temp.close();
    m = m / 10;
    lblall.setText(String.valueOf(Math.ceil(m)));


    } catch (Exception ex) {
    Logger.getLogger(this.getName()).log(Level.SEVERE, null, ex);
    }
    }


    }


    }



    و ارورهایی که میده اینها هستن:



    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.util.Hashtable.get(Hashtable.java:363)
    at java.util.logging.LogManager$LoggerContext.findLog ger(LogManager.java:693)
    at java.util.logging.LogManager.getLogger(LogManager. java:1226)
    at java.util.logging.LogManager.demandLogger(LogManag er.java:551)
    at java.util.logging.Logger.demandLogger(Logger.java: 455)
    at java.util.logging.Logger.getLogger(Logger.java:502 )
    at PI.patient.paging_Table(patient.java:736)
    at PI.patient.empty(patient.java:782)
    at PI.patient.btnnewActionPerformed(patient.java:1074 )
    at PI.patient.access$1200(patient.java:21)
    at PI.patient$12.actionPerformed(patient.java:390)
    at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.jav a:6533)
    at javax.swing.JComponent.processMouseEvent(JComponen t.java:3324)
    at java.awt.Component.processEvent(Component.java:629 8)
    at java.awt.Container.processEvent(Container.java:223 6)
    at java.awt.Component.dispatchEventImpl(Component.jav a:4889)
    at java.awt.Container.dispatchEventImpl(Container.jav a:2294)
    at java.awt.Component.dispatchEvent(Component.java:47 11)
    at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.jav a:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2746 )
    at java.awt.Component.dispatchEvent(Component.java:47 11)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.j ava:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessI mpl.doIntersectionPrivilege(ProtectionDomain.java: 80)
    at java.security.ProtectionDomain$JavaSecurityAccessI mpl.doIntersectionPrivilege(ProtectionDomain.java: 90)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessI mpl.doIntersectionPrivilege(ProtectionDomain.java: 80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java: 728)
    at java.awt.EventDispatchThread.pumpOneEventForFilter s(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(E ventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:82)





    وقتی به catch این رو اضافه میکنم


    JOptionPane.showMessageDialog(null, ex.getMessage());


    این پیغام رو میدهمیشه لطفا بگید دلیل این ارورها چیه و چطوری باید برطرفشون کنم؟
    البته همونطور که گفتم با وجود این ارورها برنامه کاملا درست کار میکنه ولی میخوام یاد بگیرم و برنامم بدون اشکال اجرا بشه و کار کنه باز هم ممنون

  2. #2
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: صفحه بندی دیتابیس در جاوا

    کد قبلی که داده بودید هم این مشکل رو داشت. رو یه سطر از جدول که برای دفعه اول کلیک میکردی اررور میداد و دفعه بعد مشکلی نداشت. مثل اینکه index خط انتخاب شده رو -1 میزد یا همچین چیزی که منم نفهمیدم مشکلش از کجاست.
    باید ببینید دقیقا کدوم خط اررور میده (احتمالا طبق خطا کلاسی که خودت نوشتی یا اون حول و حوش باشه at PI.patient.paging_Table(patient.java:736) ) و اون خط و چند خط قبلشو breakpoint بذارید و دیباگ کنید دقیقا ببینید این null از کجا میاد. طریقه دیباگ کردن در IDE مورد استفادتون رو سرچ کنید ترجیحا ویدیویی ببینید چجوریه. کلا راهکار سرراستی نداره و باید با سعی و تلاش پیداش کنید

  3. #3

    نقل قول: صفحه بندی دیتابیس در جاوا

    این کلاسیه که برای صفحه بندی تعریف کردم



    package Clas;




    import java.sql.*;
    import java.io.*;
    import java.util.ArrayList;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.JOptionPane;




    public class classpaging {

    public static Connection con = null;
    public static Statement stmt = null;
    public static ResultSet resSet = null;
    public static String url = null;

    public static ResultSet getResultSet()
    {
    return resSet;
    }

    public static Connection getcoConnection()
    {
    return con;
    }

    public static boolean connect_to_db()
    {

    try
    {
    FileReader reader = new FileReader("Miscsied.dll");
    BufferedReader bfr = new BufferedReader(reader);
    String line;
    while ((line = bfr.readLine())!=null)
    {
    System.out.println(line);
    url = line;
    }
    reader.close();
    Class.forName("com.mysql.jdbc.Driver").newInstance ();
    con = DriverManager.getConnection(url);
    return true;
    }
    catch (Exception e)
    {
    JOptionPane.showMessageDialog(null, e.getMessage());
    return false;
    }
    }

    public static boolean query_to_db( String _query)
    {
    try
    {
    stmt = con.createStatement();
    resSet = stmt.executeQuery(_query);
    if (resSet.next())
    {
    return true;
    }
    else
    {
    return false;
    }

    }
    catch (Exception e)
    {

    JOptionPane.showMessageDialog(null, e.getMessage());
    return false;
    }

    }




    }


  4. #4

    نقل قول: صفحه بندی دیتابیس در جاوا

    نقل قول نوشته شده توسط vahid-p مشاهده تاپیک
    کد قبلی که داده بودید هم این مشکل رو داشت. رو یه سطر از جدول که برای دفعه اول کلیک میکردی اررور میداد و دفعه بعد مشکلی نداشت. مثل اینکه index خط انتخاب شده رو -1 میزد یا همچین چیزی که منم نفهمیدم مشکلش از کجاست.
    باید ببینید دقیقا کدوم خط اررور میده (احتمالا طبق خطا کلاسی که خودت نوشتی یا اون حول و حوش باشه at PI.patient.paging_Table(patient.java:736) ) و اون خط و چند خط قبلشو breakpoint بذارید و دیباگ کنید دقیقا ببینید این null از کجا میاد. طریقه دیباگ کردن در IDE مورد استفادتون رو سرچ کنید ترجیحا ویدیویی ببینید چجوریه. کلا راهکار سرراستی نداره و باید با سعی و تلاش پیداش کنید
    شرمنده خیلی گشتم نتونستم اشکال رو برطرف کنم میشه شما هم یک بار چک کنید شاید اشکال رو بتونیم برطرف کنیم ممنون از وقتی که می گذارید

  5. #5

    نقل قول: صفحه بندی دیتابیس در جاوا

    فکر کنم حل شد
    میشه شما هم چک کنید

    کد این شکلی شد:



    private void paging_Table() {
    if (Clas.classpaging.connect_to_db()) {
    if (Clas.classpaging.query_to_db("SELECT COUNT(*) AS rowcount FROM tbl_patient")) {
    try {
    ResultSet res_temp = Clas.classpaging.getResultSet();
    if (res_temp.next()){
    double m = res_temp.getInt("rowcount");
    res_temp.close();
    m = m / 10;
    lblall.setText(String.valueOf(Math.ceil(m)));
    }
    } catch (Exception ex) {
    JOptionPane.showMessageDialog(null, ex.getMessage());
    Logger.getLogger(this.getName()).log(Level.SEVERE, null, ex);
    }
    }


    }


    }



    برای قسمت result یک شرط گذاشتم الان برنام کار میکنه ارور نمیده خطا هم نمیگیره ولی از درست بودن کد اطمینان ندارم



    if (res_temp.next()){

    .
    .
    .
    }


  6. #6
    کاربر دائمی آواتار vahid-p
    تاریخ عضویت
    آذر 1391
    محل زندگی
    تهران
    پست
    1,140

    نقل قول: صفحه بندی دیتابیس در جاوا

    از درست بودن کد هیچ وقت نمیشه اطمینان حاصل کرد. برای همین هم همیشه نرم افزارها باگها رو رفع میکنن و باز باگ های جدید پیدا میشه.
    اینکه کد چقدر تر و تمیز نوشته شده باشه به تجربه و هنر برنامه نویس بر میگرده و شما هم از خودتون نباید این انتظار رو داشته باشید اولین تجربتون بی نقص باشه.

    همچنین دیباگ کردن بعضی وقتا از سختترین کارهای ممکنه چون لزوما جایی که خطا میده محل اشتباه برنامه نویس نیست و ممکنه یه جا دیگه کد رو اشتباه نوشته باشید و اثر رو جای دیگه ببینید. همچنین خودتون چون کد رو نوشتید بهتر میفهمید کجاها امکان اشتباه هست، من نمیتونم کل کدتون رو بخونم!

    در کل همین که مشکل حل شده خوبه. فقط اگر میبینید دوبار کلیک میکنید تا نتیجه نشون بده، دلیلش اینه دفعه اول res_temp.next مقدار false داره و دفعه دوم true. با اینکه خطا نمیده ولی باز هم عملکرد مطلوبی نیست که دوبار کلیک کنید و بعد نتیجه نمایش داده بشه. نمیدونم این مشکل رو داره یا نه، فقط چون قبلا برنامتون رو اجرا کرده بودم گفتم. اگر این مشکل هنوز هم داره و فقط خطا پرینت نمیشه، همونطور که گفتم محل اشتباه یه جای دیگست که به UI ربط داره احتمالا، ولی اینجا خودش رو نشون میده.

    به هر حال این برنامه نمیتونه در عمل استفاده بشه چون یکم که گسترده تر بشه به مشکلات خیلی بیشتری بر میخوره، چون ساختارش منظم نیست (از رو این چند خط کد نمیگم). ولی تمرین همینه دیگه!

  7. #7

    نقل قول: صفحه بندی دیتابیس در جاوا

    خوشبختانه برنامه با همون کلیک اول کار میکنه و نیازی به 2بار کلیک نداره تا الان تونستم تمامی ارورها رو فیکس کنم البته به لطف راهنمایی و کمکهای شما
    در مورد نظم داشتن هم چون اولین کارمه و تمرینه کم کم دستم راه میوفته فقط مشکل اینجاست کسی که بلد باشه نمیشناسم و راهنمایی هایی که بهم میشه توی همین انجمن ها و سوال جوابهاست
    شاید دیر دستم راه بیوفته ولی خوبیش اینه چون سخت یاد میگیرم درست یاد میگیرم و راحت فراموش نمیکنم
    باز ممنون از راهنماییهاتون و وقتی که میذارید و تجربیاتتون رو باهام به اشتراک گذاشتین

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: یک شنبه 03 خرداد 1394, 15:28 عصر
  2. پاسخ: 13
    آخرین پست: دوشنبه 22 اردیبهشت 1393, 12:32 عصر
  3. صفحه بندی فارسی در گرید
    نوشته شده توسط ehsan3030 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 21 خرداد 1389, 20:52 عصر
  4. سوال: ايجاد صفحه بندی محتوا در php
    نوشته شده توسط terrorhell در بخش PHP
    پاسخ: 5
    آخرین پست: دوشنبه 11 آذر 1387, 11:12 صبح
  5. دیتابیس در جاوا
    نوشته شده توسط zamani.somayeh در بخش برنامه‌نویسی جاوا
    پاسخ: 1
    آخرین پست: یک شنبه 19 شهریور 1385, 10:33 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •