こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

データベースから取得したデータを配列に格納できません。

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文の結果を配列にすべて格納できるでしょうか?

投稿日時 - 2009-12-10 17:38:03

QNo.5512438

すぐに回答ほしいです

質問者が選んだベストアンサー

rowDataを初期化してください。
VectorやListも使うと楽になるかもしれませんよ。

投稿日時 - 2009-12-10 17:52:59

お礼

回答ありがとうございます。
配列にSQL文の結果を格納することができました。

投稿日時 - 2009-12-10 20:45:56

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問