簡體   English   中英

函數返回結果集,進入另一個類-JAVA

[英]function return resultset, get in another class - JAVA

我是Java新手。 我正在做的事情會產生錯誤,請讓我知道為什么我要使用此函數dispatchUncaughtException 我做對了嗎? 如果不是這樣,怎么可能呢?

這是dataCollection類

public class dataCollection {

    private ResultSet my_rs1 =  null;

    public ResultSet mydata()
    {
        try
        {
            String get_data_query = "SELECT * FROM my_table ";
            my_rs1 = cn.stmt.executeQuery(aggregator_data_query);

        } catch(SQLException SQLex)
        {
            System.out.println("SQL Error: " + SQLex.getMessage());
        }

        return my_rs1;        

    }

}

這是CallingClass //,我們在其中調用ResultSet

public class callingClass
{
    dataCollection dc = new dataCollection;
    private ResultSet my_call_data = dc.mydata();
    while(my_call_data.next())
    {
        //Code Here
    }
}

編輯

Exception in thread "Thread-2" java.lang.NullPointerException
    at sms_sender.dataCollection.aggregator_data(dataCollection.java:29)
    at sms_sender.threadClass.run(threadClass.java:27)

更正您的參數:

String get_data_query = "SELECT * FROM my_table";
my_rs1 = cn.stmt.executeQuery(get_data_query);

編輯:步驟2 =>檢查您的數據庫連接是否正常工作。 我認為您的stmt為空或不正確。

代碼應該在Java中的函數或塊中。

    public class callingClass
    {
        dataCollection dc = new dataCollection;
        private ResultSet my_call_data;

        public void showData(){
        my_call_data = dc.mydata();
         while(my_call_data.next()){
            //Code Here
         }
       }

    }

發生的情況是您沒有捕獲到異常,因此Thread.UncaughtExceptionHandler將嘗試轉發此異常。

首先嘗試捕獲異常並為我們提供stacktrace:

catch (Exception e) {
  e.printStackTrace(); // if you are not using a logger like log4j just print it.
}

然后,我建議您閱讀有關異常的更多信息

最后,通知類名稱應以大寫字母開頭,請參閱命名約定

好書:)

PS:我沒有注意到您的代碼不在方法/函數中,但是我認為這是一個不好的編輯,因為該類甚至無法編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM