1

非常に単純なSELECTクエリで取得するときに問題が発生します。テーブル'db_con_type'からすべての情報を取得し、それらをdbChoicesの配列文字列に配置しようとしています。

データベース:

Selectクエリは、レポートデザイナで正常に機能します。申し訳ありませんが、ここは初めてなので画像をアップロードできません。

コード:

public void setDbTypeChoices()
    {
       try
        {
            con2db connect2db = new con2db();
            con = connect2db.aksesDatabase();
            stmt = con.createStatement();
            String sql = "SELECT * FROM db_con_type";

            rs = stmt.executeQuery(sql);

            int i = 0;
            while(rs.next())
            {
                this.dbChoices[i] = rs.getString("DB_Type");
                i++;
            }

            rs.close();
            stmt.close();
            ps.close();
            con.close();

            //Close Connection
            connect2db.tutupKoneksi();
        }
       catch(Exception e)
       {
           System.out.println("SQL ERROR 1 = " + e.getMessage());
           System.out.println("SQL ERROR 2 = " + e.toString());
       }
    }

エラー:

SQLエラー1=null

SQLエラー2=java.lang.NullPointerException

質問:

何が起こっているのか分かりますか?解決策はありますか?

ありがとう

4

2 に答える 2

0

問題が見つかりました。これは、ps.close()コードが原因です。

ここでは使用していませんが、閉じると問題が発生します。

LuiggiによるprintStackTraceのアイデアに感謝します。すべての回答に感謝します。本当に感謝しています..:D

于 2012-10-03T02:29:44.593 に答える
0

ちなみに、渡すResultSet場合は、返される結果セットがnullでないかどうかを最初に確認してから操作することをお勧めします。たとえばrs.next()、がである場合rsはNPEが得られますnull

if(rs != null) {
    while(rs.next()) {
        this.dbChoices[i] = rs.getString("DB_Type");
        i++;
    }
}
于 2012-10-03T02:38:12.760 に答える