जावा आपको केवल जोड़ने की अनुमति नहीं देगा? रेडीस्टेटमेंट स्ट्रिंग पैरामीटर में, जैसा कि यह अपेक्षा करता है? प्लेस होल्डर के लिए केवल SQL देने के लिए पैरामीटर के लिए।
आपके मामले के लिए, आपके पास 2 तैयार कथन ऑब्जेक्ट हो सकते हैं, और लूप के माध्यम से, आप निर्णय ले सकते हैं कि किसे कॉल करना है। तो यह नीचे जैसा कुछ होगा:
PreparedStatement insertPstmt = connection.prepareStatement("INSERT INTO MY_TABLE VALUES(?,?,?,?)");
PreparedStatement updatePstmt = connection.prepareStatement("UPDATE MY_TABLE, SET MY_VAL=? WHERE MY_VAL IS NULL");
While (<condition>) {
If (<insert condition>) {
// use insert pstmt and add batch
} else {
// use update pstmt and add batch
}
}
insertPstmt.executeBatch();
updatePstmt.executeBatch();
यदि आपके पास कोई सम्मिलित है, जिसकी अद्यतन पर निर्भरता है, तो आप तदनुसार बैच निष्पादित कर सकते हैं। यह सुनिश्चित करेगा कि अद्यतन सही ढंग से काम करेगा। मैं पहले सम्मिलित करने के बारे में सोचूंगा, क्योंकि वे अद्यतन पर निर्भर नहीं हो सकते हैं।