
No.2ベストアンサー
- 回答日時:
select count(*) を使用せず
カーソルを移動させたくないとなると
先の返答にもあるとおり、
ResultSet#last()で最終行に移動後、
ResultSet#getRow() で取得
ResultSet#first()でカーソルを戻す
という方法になるでしょう。
ただし、これを行う場合、以下のことが必要です。
・JDBCがJDBC2.0のスクロールに対応している
・ステートメントを生成する際に
TYPE_SCROLL_SENSITIVEまたは
TYPE_SCROLL_INSENSITIVEを指定する
(例)
con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ただし、この方法だと型が特殊なデータなどで
取得できない場合があります。
この制約はプロダクト依存ですので
PostgresSQLの資料から調べてください。
No.1
- 回答日時:
DBの実装によるとは思うのですが、
普通はDBにSQLを発行して、ResultSetを取得した時点では、対象の全てのレコードを取得しているわけではないです。発行した時点で何レコードあるかは未知です。
何レコードあるかは、全レコード取得して初めて判明すると思います。
(ResultSetが生成された時点では、まだ全レコード取得しているわけではなく、必要に応じて内部で取得しています。例えば100レコードずつとか)
それをふまえたうえで、行数を取得するには、ResultSet#last() で最終行に移動して、ResultSet#getRow()で行番号を取得すれば分かると思います。先頭に戻すには、ResultSet#first()とします。
ただし、それは「select count(*) from ta」とするよりもはるかに効率の悪いものになるかもしれません。
#他の言語で、行数が取得できるAPIがあったかも知れませんが、同じように効率が悪い事を内部でしているのだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA リストボックス複数選択か...
-
VB.NETで DataRow()を利用して...
-
Google Apps Script で、Web上...
-
javascriptのonclickで、ループ...
-
Excelで勤怠管理をしたいです。...
-
POSTやGETの値の取得方法
-
データの元はどこにあるのでし...
-
PHP8でWarning:Undefined varia...
-
エクセルVBAで複数選択できるよ...
-
VBAでグラフのindexを取得したい
-
Flexgridで選択行の列の値を取...
-
JavaScriptにおいてコンピュー...
-
VBA Shapesの座標からセル位置...
-
現在時刻をミリ秒まで取得
-
利用者側のMACアドレスを取得し...
-
ListView 項目の選択/選択解除...
-
VB.NETでルータのグローバルIP...
-
既存のアプリのsyslistview32か...
-
JSP+Servletでのページングの常識
-
VBA:小数点以下の数字を取得で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
count(*)で取得した値をJAVAの...
-
VBAでActiveDirectoryのユーザ...
-
PHP8でWarning:Undefined varia...
-
データ数をカウントしたいのですが
-
利用者側のMACアドレスを取得し...
-
VBA:小数点以下の数字を取得で...
-
Flexgridで選択行の列の値を取...
-
JSP+Servletでのページングの常識
-
JavaScriptにおいてコンピュー...
-
like演算子内に変数って使えな...
-
JavaScriptでWindowsログオンID...
-
エクセルVBAで複数選択できるよ...
-
getParameter と getAttribut...
-
URIでのページの移動について
-
「Excel VBA」 Webクエリ マク...
-
郵便番号検索APIにてget Elemen...
-
DOS窓の非表示
-
EXCELのリストボックスを選択し...
おすすめ情報