मुझे अपने जावा कोड से SQL सर्वर डेटाबेस (एक समय में 100) में एकाधिक पंक्तियां डालने की आवश्यकता है। मैं यह कैसे कर सकता हूँ? वर्तमान में मैं एक करके एक डालने वाला हूं और यह कुशल नहीं दिखता है।जावा से SQL सर्वर में एकाधिक पंक्ति डालने
उत्तर
आप इसे चलाने के लिए बैच और executeBatch()
बनाने के लिए PreparedStatement#addBatch()
का उपयोग कर सकते हैं।
Connection connection = null;
PreparedStatement statement = null;
try {
connection = database.getConnection();
statement = connection.prepareStatement(SQL);
for (int i = 0; i < items.size(); i++) {
Item item = items.get(i);
statement.setString(1, item.getSomeValue());
// ...
statement.addBatch();
if ((i + 1) % 100 == 0) {
statement.executeBatch(); // Execute every 100 items.
}
}
statement.executeBatch();
} finally {
if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}
if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
}
भी देखें:
आप एक बहुत पारित कर सकते हैं SQL सर्वर पर एक कथन के रूप में एकाधिक प्रविष्टियों के साथ SQL के लिए लंबी स्ट्रिंग। यदि आप पैरामीटरयुक्त प्रश्न कर रहे हैं, तो यह काम नहीं करेगा। और समेकित एसक्यूएल तार "आम तौर पर एक बुरा विचार है।"
आप BULK INSERT कमांड को देखकर बेहतर हो सकते हैं। कॉलम ऑर्डर और इस तरह के बारे में कठोर होने की समस्या है। लेकिन इसके रास्ते तेजी से !!
का उपयोग करके बैच के साथ जावा पक्ष पर करने की सलाह दूंगा क्योंकि मैं इसका उपयोग नहीं कर सकता क्योंकि मेरे पास फ़ाइल नहीं है ... धन्यवाद ... – Kaddy
हाँ, यह फ़ाइल लिखने के लिए एक पिटा है और ऐसे, लेकिन इसके बारे में जागरूक होने के लिए यह एक अच्छा आदेश है। :) –
jdbc का उपयोग करके बैचिंग का एक उदाहरण मिला। इसे देखें: http://www.exampledepot.com/egs/java.sql/BatchUpdate.html
- 1. SQL सर्वर 2005 में पहली पंक्ति छोड़ें?
- 2. SQL सर्वर 2012 में पंक्ति स्तर सुरक्षा
- 3. एकाधिक पंक्तियों से एक पंक्ति में
- 4. एसक्यूएल एक पंक्ति या एकाधिक पंक्ति डेटा डालें?
- 5. एकाधिक पंक्ति डालने -> कथन 1000 पंक्ति मानों की अधिकतम अनुमत संख्या से अधिक है
- 6. SQL सर्वर पंक्ति दिनांक अंतिम बार संशोधित
- 7. SQL सर्वर
- 8. SQL सर्वर
- 9. SQL सर्वर
- 10. मैं SQL सर्वर तालिका में nth पंक्ति कैसे प्राप्त करूं?
- 11. डेटासेट से SQL सर्वर 2005 में एकाधिक रिकॉर्ड डालने के लिए मैं एकल क्वेरी का उपयोग कैसे कर सकता हूं?
- 12. एसक्यूएल सर्वर में एक पंक्ति में एकाधिक आदेशों 2005
- 13. SQL सर्वर
- 14. SQL सर्वर में पंक्ति संख्या असाइन करना, लेकिन मान
- 15. एकाधिक डेटाबेस (SQL सर्वर) पर क्वेरी
- 16. SQL सर्वर
- 17. SQL सर्वर
- 18. SQL सर्वर
- 19. SQL सर्वर 2008 में पंक्ति स्तर सुरक्षा लागू करना
- 20. ओरेकल से Sql सर्वर
- 21. SQL सर्वर
- 22. एसक्यूएल सर्वर - थोक डालने त्रुटि
- 23. SQL सर्वर
- 24. SQL सर्वर ट्रिगर (0)
- 25. SQL सर्वर
- 26. SQL सर्वर
- 27. SQL सर्वर 2005 से MySQL
- 28. SQL सर्वर
- 29. SQL सर्वर
- 30. SQL सर्वर डेटाबेस
इस दृष्टिकोण में यदि बैच से एक रिकॉर्ड विफल हो जाता है तो क्या होगा ..? असफल रिकॉर्ड के बाद रिकॉर्ड डाले जाएंगे ... मैं कैसे सुनिश्चित कर सकता हूं कि रिकॉर्ड को छोड़कर जो अन्य सभी रिकॉर्ड विफल हो जाए ...? – Kaddy
वह वास्तव में इस्तेमाल किए गए ड्राइवर पर निर्भर करता है। ['ExecuteBatch()' javadoc] देखें (http://java.sun.com/javase/6/docs/api/java/sql/Statement.html#executeBatch%28%29)। – BalusC