jdbc Resultset
に関する質問があります。質問についてjava.sql.resultset
テーブルの1つでいくつかのレコードを取得する必要があります。レコードを取得した後、IDのリストを持つResultSetのレコードを検索するにはどうすればよいですか?
最初に結果セットをハッシュマップに変換する必要がありますか?
jdbc Resultset
に関する質問があります。質問についてjava.sql.resultset
テーブルの1つでいくつかのレコードを取得する必要があります。レコードを取得した後、IDのリストを持つResultSetのレコードを検索するにはどうすればよいですか?
最初に結果セットをハッシュマップに変換する必要がありますか?
SQLクエリを修正して、最初にそれらの結果を取得するだけでなく、結果をより有用なデータ構造に変換する(たとえば、各レコードのオブジェクトを作成してハッシュに格納するなど) IDでマップ)は良い方法です、はい。
ResultSetをDBとのインターフェイスの一種として考えると、ResultSet自体にはデータが含まれていないため、検索するものはほとんどありません。
だから、操作したり、検索したりする必要がある場合は、すべてのデータを構造体に読み込む方がよいでしょう。
ハッシュ構造はおそらく最も良いですが、データをどのように構造化したかによって異なります。あなたが特定のキャッシュ実装を使用しない限り、あなたはあなたが助けを借りて、ループを通って結果セットを横断することができますunnecesaryデータベーストラフィック
の多くの原因となりますので、あなたがやるべきではない
唯一のことは、ResultSetの上に複数回interateすることです"next()" [resultSet.next()]メソッドの中から選択します。
Exが......、のgetString()、のgetInt()を使用して値を取得します: RSは私の結果セットとする、
しばらく(rs.next()){
ソプラノ( "名前:" + rs.getString( "name"));S.o.p( "年齢:" + rs.getInt( "age")); }
ありがとう:) –
ウェルカムvyas ... –
私は、HashMapが動作することに同意します。レコードの数が多い場合は、ResultSetデータをどの構造にもロードしないことで、時間とメモリーを節約できます。問合せでORDER BY IDを使用すると、結果セットからデータを直接得ることができます(rs.next();
)。
レコードを取得した後、IDのリストを含むResultSetのレコードを検索するにはどうすればよいですか?
これは間違った方法です。 ResultSetを取得する前に、SQL照会で検索とフィルター処理を行う必要があります。 >悪い習慣 - あなたはResultSet rs
を持っていると仮定し
は、ResultSetのON検索こう
while (rs.next()) {
// do whatever you want with results
}
を使用して、それを反復します。
クエリ自体を検索してください。 –
WHERE句を学び、機能要件を正しく理解している場合は、IN句も理解してください。 'SELECT * FROM tablename WHERE id IN(1、2、3、4、5、6、7、8、9)'。 [この回答](http://stackoverflow.com/questions/2861230/what-is-the-best-approach-using-jdbc-for-parameterizing-an-in-clause)も参照してください。こうすることで、データベース全体をJavaのメモリに複製せずに、メモリ不足のためJavaアプリケーションを強制終了することなく、Javaコードで必要な行だけを正確に処理できます。回答ramziのために – BalusC