• ベストアンサー

サーブレットでデータベースの件数を取得する方法がわからなくて困っています

サーブレットでデータベースの件数を取得する方法がわからなくて困っています。 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));

質問者が選んだベストアンサー

  • ベストアンサー
  • tenten72
  • ベストアンサー率29% (8/27)
回答No.1

初めまして。 qry = "SELECT COUNT(*) AS DB_ordernumber FROM dborder_tran"; rs = st.executeQuery(qry); Integer ordernumber = Integer.valueOf((rs.getInt("DB_ordernumber") + 1)); とすれば取得できると思います。(未検証ですが。。。)

pochi1234
質問者

お礼

できました。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);

その他の回答 (1)

  • zionic
  • ベストアンサー率39% (31/79)
回答No.2

DB_ordernumberフィールドの件数=レコード件数と仮定して。 No.1さんのやり方でもできますが、SELECTでの取得項目が一つであれば無理に項目名で取得するのではなくて Integer ordernumber = Integer.valueOf((rs.getInt(1) + 1)); と、Select項目の列番号(順番)を指定するというのもありじゃないかなぁ、と。

pochi1234
質問者

お礼

今回は、ログイン時に注文番号を発行する処理なので、 データベースからレコード件数を取得して、それに+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);

関連するQ&A