स्टेटमेंट ऑब्जेक्ट का उपयोग करते हुए स्टेटमेंट्स को निष्पादित करते समय, विशेष रूप से स्टेटमेंट को सम्मिलित करते हुए, हर बार एक क्वेरी को निष्पादित किया जाता है और पूरे स्टेटमेंट को बार-बार संकलित और निष्पादित किया जाता है, जहां इन स्टेटमेंट्स के बीच एकमात्र अंतर स्टेटमेंट्स का मान होता है।
जबकि, तैयार विवरण एक पूर्व-संकलित विवरण है अर्थात क्वेरी को डेटाबेस में संकलित और संग्रहीत किया जाता है, इन प्लेस होल्डरों को मूल्यों और मूल्यों के बजाय प्लेस होल्डर (?) का उपयोग करके बाद में आपूर्ति की जाती है।
इस प्रकार, अनावश्यक संकलन और कथन के बार-बार निष्पादन से बचना।
उदाहरण
मान लीजिए, हमारे पास डेटासेट . नाम की एक तालिका है डेटाबेस में mobile_brand . कॉलम के साथ और इकाई_बिक्री , यदि हम स्टेटमेंट ऑब्जेक्ट का उपयोग करके इस तालिका में रिकॉर्ड सम्मिलित करना चाहते हैं तो कोड इस प्रकार होगा:
stmt.executeUpdate("insert into Dataset values('Iphone', 3000)"); stmt.executeUpdate("insert into Dataset values('Samsung', 4000)"); stmt.executeUpdate("insert into Dataset values('Nokia', 5000)"); stmt.executeUpdate("insert into Dataset values('Vivo', 1500)"); stmt.executeUpdate("insert into Dataset values('Oppo', 9000)"); stmt.executeUpdate("insert into Dataset values('MI', 6400)"); stmt.executeUpdate("insert into Dataset values('MotoG', 4360)"); stmt.executeUpdate("insert into Dataset values('Lenovo', 4100)"); stmt.executeUpdate("insert into Dataset values('RedMi', 4000)"); stmt.executeUpdate("insert into Dataset values('OnePlus', 6334)");
और प्रत्येक निष्पादित अद्यतन () . के लिए विधि आमंत्रण इसमें संपूर्ण विवरण संकलित और निष्पादित किया जाता है। यहां, यदि आप देखते हैं कि केवल कथन के मूल्यों को बदला जा रहा है और शेष क्वेरी को अनावश्यक रूप से संकलित किया जा रहा है।
यदि आप एक ही तालिका में समान डेटा सम्मिलित करने के लिए तैयार कथन का उपयोग करके सम्मिलित क्वेरी लिखते हैं, तो कोड इस तरह दिखता है:
PreparedStatement pstmt = con.prepareStatement("insert into Dataset values(?, ?)"); pstmt.setString(1, "Iphone"); pstmt.setInt(2, 3000); pstmt.executeUpdate(); pstmt.setString(1, "Samsung"); pstmt.setInt(2, 4000); pstmt.executeUpdate(); pstmt.setString(1, "Nokia"); pstmt.setInt(2, 5000); pstmt.executeUpdate(); pstmt.setString(1, "Vivo"); pstmt.setInt(2, 1500); pstmt.executeUpdate(); pstmt.setString(1, "Oppo"); pstmt.setInt(2, 900); pstmt.executeUpdate(); pstmt.setString(1, "MI"); pstmt.setInt(2, 6400); pstmt.executeUpdate(); pstmt.setString(1, "MotoG"); pstmt.setInt(2, 4360); pstmt.executeUpdate(); pstmt.setString(1, "Lenovo"); pstmt.setInt(2, 4100); pstmt.executeUpdate(); pstmt.setString(1, "RedMi"); pstmt.setInt(2, 4000); pstmt.executeUpdate(); pstmt.setString(1, "MotoG"); pstmt.setInt(2, 4360); pstmt.executeUpdate(); pstmt.setString(1, "OnePlus"); pstmt.setInt(2, 6334); pstmt.executeUpdate();
यहां यदि आप देखते हैं कि इंसर्ट क्वेरी प्लेस होल्डर (?) के साथ तैयार की गई है और यह क्वेरी डेटाबेस में संकलित और संग्रहीत की जाती है और बाद में स्टेटमेंट के अनावश्यक निष्पादन से बचने के लिए, रेडीस्टेटमेंट इंटरफ़ेस के सेटर विधियों का उपयोग करके मूल्यों को पारित किया जाता है।पी>