JDBC Specification 4.0は、バッチ更新のためのメカニズムを説明しています。そのため、JDBCのバッチ機能を挿入または更新の目的で使用することができます。これは仕様の第14章で説明されています。
AFAIK選択バッチのメカニズムはありません。なぜなら、他の人が推薦しているように、クエリーを適切に構成することで、一度にすべての行を簡単に取得できるからです。
int[] ids = { 1, 2, 3, 4 };
StringBuilder sql = new StringBuilder();
sql.append("select jedi_name from jedi where id in(");
for (int i = 0; i < ids.length; i++) {
sql.append("?");
if(i+1 < ids.length){
sql.append(",");
}
}
sql.append(")");
System.out.println(sql.toString());
try (Connection con = DriverManager.getConnection(...)) {
PreparedStatement stm = con.prepareStatement(sql.toString());
for(int i=0; i < ids.length; i++){
stm.setInt(i+1, ids[i]);
}
ResultSet rs = stm.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("jedi_name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
出力
select jedi_name from jedi where id in(?,?,?,?)
Luke, Obiwan, Yoda, Mace Windu
あなたはバッチ-select文のようなものが必要であることを考えるだろう、なぜ何らかの理由はありますか?
「バッチクエリ」とまったく同じ意味ですか? 'c.id in(...)'を使って複数の顧客を得ることができます。 –
"顧客のための複数の結果セット"の意味を理解していません。 –
@a_horse_with_no_name 1つの顧客に対して1つの結果セットがあることを意味します。戻り行を混在させないでください。 – superche