- - PR -
ResultSetについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-05-10 10:14
現在Javaとデータベースを連携させてプログラムを作っています。
商品の在庫管理プログラムで、 まず最初に行う処理を入力します。(表示、登録、削除、終了の4つです) そして、表示を選んだときに、データが無かった場合にエラー処理をしたいのですが、 それがうまくいきません。 // データ件数を求めるSQL文を作成 sql = "SELECT COUNT (*) FROM #テーブル名"; // クエリーを実行して結果セットを取得 ResultSet rs = stmt.executeQuery(sql); if(rs.equals("0")) { System.out.println("エラー"); break; } と、してみたんですがif文の中に入ってくれません。 Access上で上記のSQL文を入力するとちゃんと「0」とでるんですが… 何かまずいところや、意見ありましたらご教授お願いします。 | ||||
|
投稿日時: 2007-05-10 10:39
ResultSetがStringの"0"と等しいわけないでしょう? それにifの中になぜbreakがあるのでしょう? COUNT(*)したのならば、 ResultSetの先頭行の1列目に数値系の型のデータが入ります。 というわけで、 ResultSet#next()した後に、 ResultSet#getInt(1)とすればよいです。 他にも、ResultSet#next()は次の行が存在しない場合にfalseを返すので、 普通にSELECT(COUNTでない)して、if(!rs.next())としても可能です。 これならわざわざCOUNT用のSQLを作らなくても済みます。 | ||||
|
投稿日時: 2007-05-10 10:39
equalsメソッドの使い方が根本的に間違っています。
rs.equals("0") これは、rsに格納されたオブジェクトが"0"という文字列型オブジェクトと等しいか比較しています。もちろんrsはResultSet型オブジェクトで、文字列型オブジェクトではないので常にfalseが返ります。 | ||||
|
投稿日時: 2007-05-10 10:52
最低限APIドキュメントを見て、equalsが何を示すかについて調べましょう。
質問する前にできる事はたくさんあると思いますよ。 |
1