javaでSQL Serverに接続する際にJDBCドライバを使用しています。
その際、下記の実行したところエラーが出ました。
java
1 2 //レコード数を取得するコード 3 4 //コネクション取得 5 Connection con = DriverManager.getConnection(url, user, password); 6 7 //クエリ 8 String sql = " SELECT * FROM sampleTable "; 9 10 //クエリ実行 11 ResultSet rs = stmt.executeQuery(sql); 12 13 //末尾のレコードに移動 14 rs.last(); //****error**** 15 16 //レコード数取得 17 int numRecord = rs.getRow(); 18 19 //レコードセット解放 20 rs.close(); 21 22 //ステートメント解放 23 con.close(); 24
エラー内容
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 要求された操作は、前方のみの ResultSet ではサポートされていません。
解決法
カーソルの種類を下記の様に変えれば良いようですが、どなたか知見のある方はいらっしゃるでしょうか。
デフォルトの設定値や大量データの検索の高速化などが気になっております。
java
1 con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
参考サイト
https://blogs.yahoo.co.jp/ryu_exlay/930748.html
https://docs.microsoft.com/ja-jp/sql/connect/jdbc/understanding-cursor-types
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/09 03:56
2018/01/09 04:57
2018/01/09 06:15