※ ChatGPTを利用し、要約された質問です(原文:データベースから取得したデータを配列に格納できません。)
データベースから取得したデータを配列に格納できない理由と解決方法
このQ&Aのポイント
jTableにSQL文の結果を表示させようとして配列に格納できない問題が発生しています。この記事では、SQL結果を配列に格納する方法と、Nullポインターエラーを解決する方法を紹介します。
データベースから取得したデータを配列に格納できない問題があります。この記事では、SQL文の結果を配列に格納するための正しい方法を説明します。また、java.lang.NullPointerExceptionエラーの解決方法についても解説します。
今回は、データベースから取得したデータを配列に格納できない問題について考えます。SQL文の結果を配列に格納する手順と、Nullポインターエラーを回避する方法を紹介します。
データベースから取得したデータを配列に格納できません。
jTableにSQL文の結果を表示させようとして結果を以下のように配列に
格納しようとしました。
public String[][] Serch(){
int i=0;
String[][] rowData;
String str = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=helloTable.mdb";
try {
// ドライバクラスをロード
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// データベースへ接続
Connection con = DriverManager.getConnection(str, "", "");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
String sql = "SELECT * FROM ハローテーブル";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
// NOを取得
String no = String.valueOf(rs.getInt("NO"));
// 言語を取得
String lang = rs.getString("言語");
// メッセージを取得
String msg = rs.getString("メッセージ");
rowData[i][0] = no;
rowData[i][1] = lang;
rowData[i][2] = msg;
i++;
}
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return rowData;
}
このメソッドで得た配列を表示させようとすると以下の結果が表示されます。
java.lang.NullPointerException
正常なSQL文の結果は以下の通りです。
1 日本語 こんにちは世界
2 英語 Hello World
3 ドイツ語 Hallo Welt
配列の行数はSQL文の結果の行数に合わせたかったのですがうまくいきません。
どのように直せばSQL文の結果を配列にすべて格納できるでしょうか?
お礼
回答ありがとうございます。 配列にSQL文の結果を格納することができました。