- ベストアンサー
件数取得方法
以下のソースはSQLを発行して、hashに検索結果を格納しているのですが、 取得した件数を知りたいのですが、どうすればよいでしょうか? 基本的なことかもしれませんが、よろしくお願いします。 public Hashtable hash; public void getData(String param) throws SQLException { StringBuffer strSQL = new StringBuffer(); strSQL.append("SELECT "); strSQL.append(" *"); strSQL.append(" FROM"); strSQL.append(" TABLE"); strSQL.append(" WHERE"); strSQL.append(" NO = "); strSQL.append(param); ArrayList list = DBAccess.SetRecordToArray(strSQL.toString(), 0); hash = (Hashtable)list.get(0); }
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
お世話になります。 >DBAccess.SetRecordToArray(strSQL.toString(), 0); 上のメソッドSetRecordToArrayで どんな処理をしているのかわからないので、 回答のしようがないです。 メソッドSetRecordToArray内で どんな実装をしているか調べれば、 おのずと取れたか取れないかの 判定方法が解るのではないでしょうか。 # No.1の回答は推測で書きました。
その他の回答 (3)
- Bonjin
- ベストアンサー率43% (418/971)
>DBAccess.SetRecordToArray(strSQL.toString(), 0); このクラスのAPIドキュメントを読みましょう。このクラスは標準ライブラリにはないので他の人にはわかりません。オープンソース等のライブラリならば使用したライブラリの名称は書きましょう。 簡単に考えると ・list == null ・list.size() == 0 ・例外がスローされた のいずれかで取得できなかったと判断できるのではないでしょうか? あくまで憶測に過ぎないのでちゃんとドキュメントに目を通してください。
- love-less
- ベストアンサー率60% (9/15)
とりあえず回答 list.size() で件数が返ってきます。 ※hash.size()も可能 で、アドバイス Javadocと呼ばれるJavaAPIのリファレンスをご存知ですか? それを参照すると今回のような疑問はすぐに解決しますよ。 で、もう一個 このさきlistをfor文で回そうとか考えてるようであれば Iteratorを使うことをお勧めします。 ※JDK5.0ならエンハンスドforループなるものが使えるみたいですが
- naganaga_001
- ベストアンサー率71% (172/242)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Hashtable.html#size() hash.size()ではないのですか?
補足
すみません。 質問がちょっと間違ってました。 このソースの場合、取得件数は必ず1件になります。 で、何が知りたいかというと、取得できたか、できなかったか(0件か、1件か)を知りたいのです。 あと、hash.size()だと検索結果とは全然違う件数になってしまいます。