मैं बैच किए गए INSERT क्वेरीज़ की श्रृंखला बनाने के लिए जावा तैयार किए गए स्टेटमेंट ऑब्जेक्ट का उपयोग कर रहा हूं। क्वेरी बयानजावा तैयार कथन सम्मिलित करने के लिए tablename चर का उपयोग कैसे करें
String strQuery = "INSERT INTO ? (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);";
प्रारूप की है ... ... इसलिए दोनों फ़ील्ड मान और tablename चर (हैं अर्थात्। मैं उसी स्तंभ प्रारूप जिनमें से प्रत्येक डालने एक करने के लिए निर्देशित किया जाएगा के साथ कई तालिकाओं है दूसरा वाला)। अगर मैं "?" को हटा देता हूं तो मैं निष्पादन निष्पादित कर सकता हूं tablename चर और हार्ड कोड लेकिन प्रत्येक तैयार बयान एक अलग तालिका में सम्मिलित किया जाएगा, ताकि एक चर मैं तुरंत का उपयोग कर बैच क्वेरी को क्रियान्वित करने से पहले पॉप्युलेट रहने के लिए की जरूरत है ...
stmt.setString(1, "tableName1");
मैं यह कैसे एक गतिशील हो सकते हैं कृपया परिवर्तनीय?
धन्यवाद दोस्तों ... ऐसा लगता है क्योंकि मुझे पता नहीं है कि मैं प्रत्येक पंक्ति के लिए चर में स्वैपिंग के बिंदु तक उस टैबलेटनाम को क्यों सम्मिलित करना चाहता हूं, सबसे अच्छी बात यह है कि डीबी संग्रहीत प्रक्रिया के भीतर डालने का सबसे अच्छा काम है। फिर प्रत्येक पंक्ति के लिए सभी पैरामीटर को संग्रहित प्रो में पास करें, फिर डीबी को टैबलेटनाम मैनिपुलेशन को संभालने दें। वैसे भी प्रतिक्रियाओं के लिए लोगों को धन्यवाद। :-) – ForestSDMC
क्या इसका मतलब है कि गतिशील तालिका नामों के साथ एसक्यूएल इंजेक्शन सुरक्षा असंभव है? –
@ रिचर्ड मैं एक ही निष्कर्ष पर आया और यह मूर्खतापूर्ण लगता है, लेकिन कम से कम डेटाबेस में उपलब्ध तालिकाओं की सूची के खिलाफ तालिका नाम की जांच करना आसान है। – JulienD