- ベストアンサー
サーブレットでデータベースの件数を取得する方法がわからなくて困っています
サーブレットでデータベースの件数を取得する方法がわからなくて困っています。 dborder_tranテーブルの DB_ordernumber フィールドの件数を取得したいです。 以下の方法では COUNTというフィールドはないので取得できないです。 しかし、while(rs.next()) にカウンタを付けて取得するのも効率が悪いように思います。 何か良い方法はありませんか? qry = "SELECT COUNT(*) FROM dborder_tran"; rs = st.executeQuery(qry); Integer ordernumber = Integer.valueOf((rs.getInt("DB_ordernumber") + 1));
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
初めまして。 qry = "SELECT COUNT(*) AS DB_ordernumber FROM dborder_tran"; rs = st.executeQuery(qry); Integer ordernumber = Integer.valueOf((rs.getInt("DB_ordernumber") + 1)); とすれば取得できると思います。(未検証ですが。。。)
その他の回答 (1)
- zionic
- ベストアンサー率39% (31/79)
DB_ordernumberフィールドの件数=レコード件数と仮定して。 No.1さんのやり方でもできますが、SELECTでの取得項目が一つであれば無理に項目名で取得するのではなくて Integer ordernumber = Integer.valueOf((rs.getInt(1) + 1)); と、Select項目の列番号(順番)を指定するというのもありじゃないかなぁ、と。
お礼
今回は、ログイン時に注文番号を発行する処理なので、 データベースからレコード件数を取得して、それに+1する処理が必要でした。 qry = "SELECT COUNT(*) AS DB_ordernumber FROM dborder_tran"; rs = st.executeQuery(qry); rs.next(); String ordernumber = Integer.toString(rs.getInt("DB_ordernumber") + 1);
お礼
できました。ASで別名をつければいいんですね。 ありがとうございました。 qry = "SELECT COUNT(*) AS DB_ordernumber FROM dborder_tran"; rs = st.executeQuery(qry); rs.next(); String ordernumber = Integer.toString(rs.getInt("DB_ordernumber") + 1);