2016-08-27 32 views
0

MySQLワークベンチで、私が要求しているID(​​実際にはデータはありません)のテーブルにデータがないことを確認します。ただし、条件は真と評価されています。空の結果、JDBC

first-half second-half

は、最初に、「InvalidRowReasonは、」インデックスが最初の前に実際にあるので、それが真と評価されたことを信じるように私を導いたが、ドキュメントのために: はここでResultSetのデバッグ出力ですisBeforeFirst()状態:

カーソルが最初の行の前にある場合はtrueです。偽結果セットが行

が含まれていないカーソルが他の位置にあるか、場合、私はその後、rowDataを拡大し、サイズが1に等しいことがわかった:

row data

どのような行やデータもテーブルに存在しないことを確認できるので、これがどのようになるか分かりません。私は何が欠けていますか?

答えて

3

あなたはSQLとCOUNTでCOUNTを作っているので、常に結果(行)が、とにかく自分の場合は0で、私はおそらくこれはトリックをした

SELECT * FROM basic_etf_data WHERE etf_name = ? LIMIT 1 
+1

としてクエリを記述します。私のデータベースにはたくさんのデータが含まれており、COUNT(*)は*よりスマートな選択肢でした。しかし、私は今、COUNTのドキュメントを読んで、それがヌルを数えないことを発見しました。これがInvalidRowReasonが「結果セットの開始前」であった理由です。合法的に真実に戻っていた。もう一度デバッグして、InvalidRowReasonが "空の結果セットで不正な操作"になりました。必要に応じてfalseを返します。ヌルズ! –