JDBCでテーブルのカウントを取得するSQLを発行したところ、SQLExceptionが発生。発生したのは以下のコード。

・・・前半省略・・・
ResultSet rs = stmt.executeQuery( "SELECT COUNT(*) FROM SAMPLE" ) ;
int recCnt = rs.getInt(1);

これは、executeQueryを呼び出し1行だから、レコード移動は気にせず1回だけgetIntで値参照をすればいいと考えたことの間違い。executeQueryが終わった時点ではカーソルは何も示していないため、取得対象がnullで落ちるという問題。

対応は簡単で、以下の様に executeQuery の後にrs.next()を呼んでやればいい

・・・前半省略・・・
ResultSet rs = stmt.executeQuery( "SELECT COUNT(*) FROM SAMPLE" ) ;
rs.next();
int recCnt = rs.getInt(1);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です