जेडीबीसी पैरामीटराइज़िंग इन क्लॉज: एक कुशल दृष्टिकोण
आईएन क्लॉज क्वेरी से निपटते समय, जैसे SELECT * FROM MYTABLE जहां MYCOL ( ?), पैरामीटराइज़िंग तर्क सुरक्षा और दक्षता सुनिश्चित करता है। हालांकि जेडीबीसी प्रत्यक्ष समाधान प्रदान नहीं करता है, कुछ ड्राइवर ReadyedStatement#setArray() का समर्थन कर सकते हैं।
पैरामीटरीकरण के लिए सहायक तरीके
प्रत्यक्ष समर्थन के अभाव में, आप IN क्लॉज और सेट मानों के लिए प्लेसहोल्डर उत्पन्न करने के लिए सहायक तरीकों का लाभ उठा सकते हैं गतिशील। ... मान)
: का उपयोग करके लूप में मान सेट करता है ReadyedStatement#setObject().मुख्य विचार
private static final String SQL_FIND = "SELECT id, name, value FROM entity WHERE id IN (%s)";
public List find(Set ids) throws SQLException {
List entities = new ArrayList();
String sql = String.format(SQL_FIND, preparePlaceHolders(ids.size()));
try (
Connection connection = dataSource.getConnection();
PreparedStatement statement = connection.prepareStatement(sql);
) {
setValues(statement, ids.toArray());
try (ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
entities.add(map(resultSet));
}
}
}
return entities;
}
यह दृष्टिकोण विभिन्न डेटाबेस में पोर्टेबिलिटी सुनिश्चित करता है SQL स्टेटमेंट जेनरेशन को वैल्यू सेटिंग से अलग करके।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3