重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

以下のソースは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);

}

A 回答 (4件)

お世話になります。



>DBAccess.SetRecordToArray(strSQL.toString(), 0);
上のメソッドSetRecordToArrayで
どんな処理をしているのかわからないので、
回答のしようがないです。

メソッドSetRecordToArray内で
どんな実装をしているか調べれば、
おのずと取れたか取れないかの
判定方法が解るのではないでしょうか。

# No.1の回答は推測で書きました。
    • good
    • 0

>DBAccess.SetRecordToArray(strSQL.toString(), 0);


このクラスのAPIドキュメントを読みましょう。このクラスは標準ライブラリにはないので他の人にはわかりません。オープンソース等のライブラリならば使用したライブラリの名称は書きましょう。

簡単に考えると
・list == null
・list.size() == 0
・例外がスローされた
のいずれかで取得できなかったと判断できるのではないでしょうか?
あくまで憶測に過ぎないのでちゃんとドキュメントに目を通してください。
    • good
    • 0

とりあえず回答



list.size()
で件数が返ってきます。
※hash.size()も可能

で、アドバイス
Javadocと呼ばれるJavaAPIのリファレンスをご存知ですか?

それを参照すると今回のような疑問はすぐに解決しますよ。

で、もう一個
このさきlistをfor文で回そうとか考えてるようであれば
Iteratorを使うことをお勧めします。
※JDK5.0ならエンハンスドforループなるものが使えるみたいですが
    • good
    • 0

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
hash.size()ではないのですか?

この回答への補足

すみません。
質問がちょっと間違ってました。
このソースの場合、取得件数は必ず1件になります。
で、何が知りたいかというと、取得できたか、できなかったか(0件か、1件か)を知りたいのです。

あと、hash.size()だと検索結果とは全然違う件数になってしまいます。

補足日時:2005/09/13 17:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!