JDBC Specification 4.0 बैच के अपडेट के लिए एक तंत्र का वर्णन है। इस प्रकार, जेडीबीसी में बैच सुविधाओं को सम्मिलित या अद्यतन उद्देश्यों के लिए उपयोग किया जा सकता है। यह विनिर्देश के अध्याय 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
वहाँ किसी भी कारण है कि आप पर विचार करेगा कि आप एक बैच का चयन करें बयान की तरह एक बात की जरूरत है?
स्रोत
2012-03-24 18:31:32
"बैच क्वेरी" के साथ आपका क्या मतलब है? आप एक से अधिक ग्राहक प्राप्त करने के लिए 'c.id में (...)' का उपयोग कर सकते हैं। –
मुझे नहीं पता कि "ग्राहकों के लिए एकाधिक परिणाम सेट" के साथ आपका क्या मतलब है। –
@a_horse_with_no_name मेरा मतलब है एक परिणाम के लिए एक परिणाम सेट, वापसी पंक्तियों को मिश्रण न करें। – superche