इस प्रश्न का उत्तर इस तरह से किया गया इंटरनेट पर खोजने में बहुत मुश्किल लगता है। मूल रूप से मैं preparedStatement का उपयोग कर एक MySQL डेटाबेस में मान डाल रहा हूँ। मैं एसक्यूएल इंजेक्शन हमलों को रोकने के लिए डेटा से बचने के लिए प्रीपेयरस्टेटमेंट का उपयोग करता हूं। समस्या यह है कि अब उन चाबियों को पुनः प्राप्त करने का तरीका है।जावा तैयार किए गए स्टेटमेंट को अंतिम डाला गया आईडी
String query="Insert INTO Table_A(name, age) (?, ?)";
//String query="Insert INTO Table_A(name, age) ('abc','123')";//Doesn't escape
PreparedStatement prest;
prest = con.prepareStatement(query);
prest.setString(1,"abc");
prest.setInt(2,123);
prest.executeUpdate();
//prest.executeUpdate(query, PreparedStatement.RETURN_GENERATED_KEYS); Throws an error
//prest.executeQuery(); Throws an error
तो मैं इनपुट से कैसे बच सकता हूं और जावा में तैयार किए गए स्टेटमेंट का उपयोग कैसे कर सकता हूं?
'prepareStatement()' कॉल करने के लिए 'RETURN_GENERATED_KEYS' दर्रा और प्रयोग' executeUpdate() 'डालने exeute करने के लिए। यदि यह काम नहीं करता है, तो कृपया अपवाद प्रदान करें। – ZeissS
@ बाल्लूसी इसे करने का एक सही तरीका संदर्भित करता है। –
@ बाल्लूसी, यह वही है जो मैं ढूंढ रहा था। बुरा जवाब देने के लिए जवाब नहीं! –