परिणाम सेट दो प्रकार के होते हैं, केवल अग्रेषित और द्विदिश।
केवल परिणाम सेट अग्रेषित करें: रिजल्टसेट ऑब्जेक्ट जिसका कर्सर केवल एक दिशा में चलता है, उसे फॉरवर्ड ओनली रिजल्टसेट के रूप में जाना जाता है। डिफ़ॉल्ट रूप से, JDBC परिणाम सेट केवल-अग्रेषित परिणाम सेट होते हैं।
आप केवल परिणाम सेट . के कर्सर को आगे ले जा सकते हैं अगला () . का उपयोग करके परिणामसेट इंटरफ़ेस की विधि। यह पॉइंटर को वर्तमान स्थिति से अगली पंक्ति में ले जाता है। यह विधि एक बूलियन मान लौटाती है। यदि इसकी वर्तमान स्थिति के आगे कोई पंक्तियाँ नहीं हैं तो यह असत्य लौटाता है, अन्यथा यह सत्य लौटाता है।
इसलिए, इस विधि का उपयोग करते हुए लूप में आप ResultSet ऑब्जेक्ट की सामग्री को पुनरावृत्त कर सकते हैं।
जबकि(rs.next ()){}
उदाहरण
मान लें कि हमारे पास नीचे दिखाए गए अनुसार सामग्री के साथ डेटासेट नाम की एक तालिका है:
<पूर्व>+--------------+---------------+| मोबाइल_ब्रांड | Unit_sale |+--------------+-----------+| आईफोन | 3000 || सैमसंग | 4000 || नोकिया | 5000 || विवो | 1500 |+--------------+---------------+निम्न उदाहरण डेटासेट . के सभी रिकॉर्ड पुनर्प्राप्त करता है तालिका और परिणाम प्रिंट करता है:
आयात करें ड्राइवर का पंजीकरण करना DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/TestDB"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // एक स्टेटमेंट ऑब्जेक्ट बनाना स्टेटमेंट stmt =con.createStatement (); // डेटा प्राप्त करना ResultSet rs =stmt.executeQuery ("डेटासेट से * चुनें"); System.out.println ("तालिका की सामग्री"); जबकि (rs.next ()) {System.out.print("ब्रांड:"+rs.getString("Mobile_Brand")+", "); System.out.print ("बिक्री:" + rs.getString ("Unit_Sale")); System.out.println (""); } }}आउटपुट
कनेक्शन स्थापित...टेबल की सामग्री:Iphone, बिक्री:3000ब्रांड:सैमसंग, बिक्री:4000ब्रांड:Nokia, बिक्री:5000ब्रांड:Vivo, बिक्री:1500
द्विदिशात्मक परिणामसेट: एक द्वि-दिशात्मक परिणामसेट ऑब्जेक्ट वह है जिसका कर्सर आगे और पीछे दोनों दिशाओं में चलता है।
कनेक्शन इंटरफ़ेस की createStatement() विधि में एक प्रकार है जो परिणाम सेट प्रकार और समवर्ती प्रकार का प्रतिनिधित्व करने वाले दो पूर्णांक मानों को स्वीकार करता है।
स्टेटमेंट createStatement(int resultSetType, int resultSetConcurrency)
एक द्वि-दिशात्मक परिणाम सेट बनाने के लिए आपको इस विधि के लिए, इस प्रकार के रूप में ResultSet.TYPE_SCROLL_SENSITIVE या ResultSet.TYPE_SCROLL_INSENSITIVE के रूप में, समवर्ती के साथ पास करना होगा:
//स्टेटमेंट ऑब्जेक्ट बनाना stmt =con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
उदाहरण
निम्नलिखित उदाहरण द्वि-दिशात्मक परिणामसेट के निर्माण को दर्शाता है। यहां हम एक द्वि-दिशात्मक परिणामसेट ऑब्जेक्ट बनाने की कोशिश कर रहे हैं जो तालिका नाम डेटासेट से डेटा पुनर्प्राप्त करता है और, हम पिछला () का उपयोग करके डेटासेट तालिका की पंक्तियों को अंतिम से पहले तक प्रिंट करने का प्रयास कर रहे हैं। विधि।
आयात करें ड्राइवर का पंजीकरण करना DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/TestDB"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // स्टेटमेंट ऑब्जेक्ट बनाना स्टेटमेंट stmt =con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // डेटा प्राप्त करना ResultSet rs =stmt.executeQuery ("डेटासेट से * चुनें"); आरएस.आफ्टर लास्ट (); System.out.println ("तालिका की सामग्री"); जबकि(rs.previous()) { System.out.print("Brand:"+rs.getString("Mobile_Brand")+", "); System.out.print ("बिक्री:" + rs.getString ("Unit_Sale")); System.out.println (""); } }}आउटपुट
कनेक्शन स्थापित...टेबल की सामग्री:विवो, बिक्री:1500ब्रांड:नोकिया, बिक्री:5000ब्रांड:सैमसंग, बिक्री:4000ब्रांड:IPhone, बिक्री:3000