
夜分失礼します。
上記内容について教えてください。
今JAVAを用いてレコード件数(200件)を表示させようとしています。
しかし、レコードセットの表示方法しか知らず、またレコード件数をPHPで表示させる方法くらいしか検索できませんでした。どこがいけないか指摘してください。
以下にコア部分を書きます。
// ドライバクラスをロード
Class.forName("org.gjt.mm.mysql.Driver");
// データベースへ接続
String url = "jdbc:mysql://localhost:3306/db";
con = DriverManager.getConnection(url,"root","**********")
stmt2 = con.createStatement();
strQuery2 = " select count(*) AS RecordNums from ********** ";
ResultSet rs2 = stmt2.executeQuery( strQuery2 );
SumNo = rs2.getFetchSize();
どうしてもSumNo=0となってしまいます。
No.3ベストアンサー
- 回答日時:
>「java.sql.SQLException: Before start of result set SQL 」
>というエラーが出ました。
>このエラーは何を表しているのでしょうか??(・_・?)
ResultSetのURLを見てもらうと書いていますが、「初期状態では、カーソルは~」という理由で
getInt(int columnIndex) メソッドを呼び出す前に
next() メソッドを呼び出す必要があります。
つまり、
Connection con =DriverManager.getConnection(~);
Statement stmt = con.createStatement();
String sql="";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
int int_a = rs.getInt(~);
String str_a = rs.getString(~);
String str_b = rs.getString(~);
}
stmt.close();
con.close();
という使い方がDBへアクセスするときのひとつの流れです。(select文の結果を全て表示したいときですが)
>「public int getInt(int columnIndex)」
>この宣言はするべきなのでしょうか?
>これを追加すると(public int getInt;)ここがエラーになります。
どのクラスに定義しようとしていて、どんなエラーが出たのかよくわからないのでなんともいえませんが、インターフェースResultSetにはこのメソッドがすでに定義されているので、あなたがResultSetをimplementsしたクラスを作ろうとしているのならともかく、ResultSetをimplementsしたクラスを使うだけならこのメソッドを定義する必要はありません。
ところで、改行の問題はうまくいったんですか?
この回答への補足
詳しいご説明、ありがとうございました。
rs.next()が抜けていたのが問題だったようです。しかし、この問題が解決するとまた別のところにエラーが出てきました。これは自力で何とかします。
改行ですが・・結局JAVAで書くのは断念し(おい!
おとなしくout.println("<br>")とすることにしました。どうしたかを書くべきでした。申し訳ありません。
(〃⌒ー⌒〃)∫
No.2
- 回答日時:
こんにちわ
ResultSet rs2 = stmt2.executeQuery( strQuery2 );
の後に
while(rs2.next()){
SumNo = rs2.getInt(1);
}
を書いてください。
ResultSet取得後、next()で
カーソルを現在の位置から 1 行下に移動しないと
値は取れません。
next()すれば、
SumNo = rs2.getFetchSize();
でも取れるかもしれません。(試してませんが)
でも私ならgetInt()で件数は取得します。
この回答への補足
ありがとうございます。
rs.next()を追加すると解決しました。
ただ、whileのなかに入れる必要はないようです。
(一つの値として取得しているので)(=´∇`=)
いずれにしても、ありがとうございました。m(__)m
No.1
- 回答日時:
count(*)の結果を取得したいんですよね?
でしたら、
SumNo = rs2.getFetchSize();
ではなく、
SumNo = rs2.getInt(1);
が正解です。
いちど、ResultSetのAPI仕様に目を通すことをおすすめします。
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
この回答への補足
ご解答ありがとうございます。
実はSQLコマンドのことはよく知らないのです。
API使用の参考の仕方から覚えようと努力します。
また、上記方法で試してみたのですが、
「java.sql.SQLException: Before start of result set SQL 」
というエラーが出ました。
このエラーは何を表しているのでしょうか??(・_・?)
「public int getInt(int columnIndex)」
この宣言はするべきなのでしょうか?
これを追加すると(public int getInt;)
ここがエラーになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
確定申告しなかった・無申告の人をどうやって見つけるのか元国税調査官に聞いてみた
無申告の方などを対象に税務調査を行う国税局の元税務調査官さんに、どう無申告を探すのか聞いてきました。
-
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
フォーム上で押されたボタンによってサーブレットの処理を変えたい
Java
-
JSPでのArrayListの表示について困っています
Java
-
4
Java-jspの画面入力値保持について
Java
-
5
JSPで<SELECT>の中にDBから持ってきたデータを反映させたい
Java
-
6
データ数をカウントしたいのですが
Java
-
7
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
8
ServletからServletへの値渡し
Java
-
9
リクエストに応じたselectedの初期値設定方法
Java
-
10
JSPでリンクを利用してパラメータを次画面に渡す方法について。
Java
-
11
1つのformで複数のactionを実行できますか?
JavaScript
-
12
servletからjspへオブジェクトの配列情報を送る方法
Java
-
13
データベースに変数の値を挿入
Java
-
14
JSPでDBからデータ読み込みブラウザーで10件ずつ表示させたい。
Java
-
15
jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
Java
-
16
EclipseでHTTP404エラーが出る。
Java
-
17
正しいURL指定しているにもかかわらずJSPファイルにアクセスできず「404エラー」が発生
Java
-
18
「value」に2つの値をセットする方法
HTML・CSS
-
19
eclipseでcssを使うためには?
その他(プログラミング・Web制作)
-
20
ページング
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
Java初心者です、エラーの意味...
-
5
Fileの読み取り専用の解除
-
6
public static void main (Stri...
-
7
StringBufferからStringへキャ...
-
8
javaに"search"という関数 or ...
-
9
なぜprotected overrideなのか
-
10
C# でメソッドに送られてきたOb...
-
11
contextってなんですか?
-
12
クラスを作るとメソッドの数が...
-
13
String.containsの反対機能はあ...
-
14
C# 点の描き方をおしえてくだ...
-
15
メソッド宣言の戻り値の型にク...
-
16
FileUtilsクラスを使ってフォル...
-
17
abstract と static を一緒に付...
-
18
EXCELを開いてマクロを自動起動...
-
19
親の親のメソッドを呼ぶには?
-
20
別クラスのmainメソッドの実行
おすすめ情報
公式facebook
公式twitter