プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

rowDataを初期化してください。


VectorやListも使うと楽になるかもしれませんよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/12/10 20:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています