सेटबाइनरीस्ट्रीम () तैयार विवरण . की विधि इंटरफ़ेस पैरामीटर की अनुक्रमणिका और एक इनपुटस्ट्रीम ऑब्जेक्ट का प्रतिनिधित्व करने वाला एक पूर्णांक स्वीकार करता है और पैरामीटर को दिए गए इनपुटस्ट्रीम ऑब्जेक्ट पर सेट करता है। जब भी आपको बहुत बड़ा बाइनरी मान भेजने की आवश्यकता हो तो आप इस पद्धति का उपयोग कर सकते हैं।
और SQL डेटाबेस ब्लॉब (बाइनरी लार्ज ऑब्जेक्ट) नामक एक डेटाटाइप प्रदान करते हैं इसमें आप छवियों जैसे बड़े बाइनरी डेटा को स्टोर कर सकते हैं।
JDBC का उपयोग करके छवि संग्रहीत करना
यदि आपको JDBC प्रोग्राम का उपयोग करके डेटाबेस में एक छवि को स्टोर करने की आवश्यकता है, तो नीचे दिखाए गए अनुसार ब्लॉब डेटाटाइप के साथ एक तालिका बनाएं:
टेबल ट्यूटोरियल बनाएं(नाम VARCHAR(255), टाइप करें INT NOT NULL, Logo BLOB);
अब, JDBC का उपयोग करते हुए, डेटाबेस से कनेक्ट करें और एक तैयार विवरण prepare तैयार करें ऊपर बनाई गई तालिका में मान सम्मिलित करने के लिए:
स्ट्रिंग क्वेरी ="ट्यूटोरियल में डालें (नाम, प्रकार, लोगो) मान (?,?,?)"; तैयार स्टेटमेंट pstmt =con.prepareStatement (क्वेरी);
रेडीस्टेटमेंट इंटरफ़ेस के सेटर विधियों का उपयोग करके प्लेस होल्डर के लिए मान सेट करें और ब्लॉब डेटाटाइप सेट मान के लिए सेटबाइनरीस्ट्रीम () विधि का उपयोग करें।
FileInputStream fin =new FileInputStream("javafx_logo.jpg");pstmt.setBinaryStream(3, फिन);
उदाहरण
JDBC प्रोग्राम का उपयोग करके एक MySQL डेटाबेस में छवि सम्मिलित करने का तरीका प्रदर्शित करने वाला एक उदाहरण निम्नलिखित है। यहां हम तालिका में ब्लॉब डेटाटाइप सम्मिलित मानों के साथ एक तालिका बना रहे हैं (बाइनरीस्ट्रीम ब्लॉब प्रकार पर आपत्ति) और, तालिका की सामग्री को पुनः प्राप्त किया।
आयात करें SQLException; आयात java.sql.Statement; सार्वजनिक वर्ग InsertingImageToDatabase {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) अपवाद फेंकता है {// ड्राइवर DriverManager.registerDriver को पंजीकृत करना (नया com.mysql.jdbc.Driver ()); // कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/sampleDB"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // स्टेटमेंट स्टेटमेंट बनाना stmt =con.createStatement (); // कथन निष्पादित करना स्ट्रिंग createTable ="टेबल ट्यूटोरियल बनाएं ("+" नाम VARCHAR (255), "+" टाइप करें VARCHAR (50), "+" लोगो BLOB) "; stmt.execute (क्रिएटटेबल); // मूल्यों को सम्मिलित करना स्ट्रिंग क्वेरी ="ट्यूटोरियल में सम्मिलित करें (नाम, प्रकार, लोगो) मान (?,?,?)"; रेडीस्टेडमेंट pstmt =con.prepareStatement (क्वेरी); pstmt.setString(1, "JavaFX"); pstmt.setString(2, "Java_library"); FileInputStream फिन =नया FileInputStream ("ई:\\ छवियां \\ javafx_logo.jpg"); pstmt.setBinaryStream(3, फिन); pstmt.execute (); pstmt.setString(1, "कॉफीस्क्रिप्ट"); pstmt.setString(2, "स्क्रिप्टिंग लैंग्वेज"); फिन =नया फ़ाइल इनपुटस्ट्रीम ("ई:\\ छवियां \\ कॉफीस्क्रिप्ट_लोगो। जेपीजी"); pstmt.setBinaryStream(3, फिन); pstmt.execute (); pstmt.setString(1, "कैसेंड्रा"); pstmt.setString(2, "NoSQL डेटाबेस"); फिन =नया फ़ाइल इनपुटस्ट्रीम ("ई:\\ छवियां \\ cassandra_logo.jpg"); pstmt.setBinaryStream(3, फिन); pstmt.execute (); System.out.println ("डेटा डाला गया"); ResultSet rs =stmt.executeQuery ("ट्यूटोरियल से * चुनें"); जबकि (rs.next ()) {System.out.print("Name:"+rs.getString("Name")+", "); System.out.print("ट्यूटोरियल टाइप:"+rs.getString("Type")+", "); System.out.print ("लोगो:" + rs.getBlob ("लोगो")); System.out.println (); } }}पूर्व>आउटपुट
<पूर्व>कनेक्शन स्थापित...डेटा डाला गयानाम:JavaFX, ट्यूटोरियल प्रकार:Java_library, लोगो:com.mysql.jdbc.Blob@7dc5e7b4Name:CoffeeScript, ट्यूटोरियल प्रकार:स्क्रिप्टिंग भाषा, लोगो:com.mysql.jdbc.Blob @1ee0005नाम:कैसेंड्रा, ट्यूटोरियल प्रकार:NoSQL डेटाबेस, लोगो:com.mysql.jdbc.Blob@75a1cd57नोट: आप JDBC प्रोग्राम का उपयोग करके केवल .gif या .jpeg या .png प्रकार की छवियों को संग्रहीत और पुनर्प्राप्त कर सकते हैं।