Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

कैसे JDBC का उपयोग कर डेटाबेस में छवियों को सम्मिलित करने के लिए?

<घंटा/>

सेटबाइनरीस्ट्रीम () तैयार विवरण . की विधि इंटरफ़ेस पैरामीटर की अनुक्रमणिका और एक इनपुटस्ट्रीम ऑब्जेक्ट का प्रतिनिधित्व करने वाला एक पूर्णांक स्वीकार करता है और पैरामीटर को दिए गए इनपुटस्ट्रीम ऑब्जेक्ट पर सेट करता है। जब भी आपको बहुत बड़ा बाइनरी मान भेजने की आवश्यकता हो तो आप इस पद्धति का उपयोग कर सकते हैं।

और 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 प्रकार की छवियों को संग्रहीत और पुनर्प्राप्त कर सकते हैं।


  1. हम JDBC का उपयोग करके डेटाबेस से फ़ाइल कैसे प्राप्त कर सकते हैं?

    परिणाम सेट इंटरफ़ेस getClob() . नामक विधियाँ प्रदान करता है और getCharacterStream() क्लॉब को पुनः प्राप्त करने के लिए डेटाटाइप, जिसमें किसी फ़ाइल की सामग्री को आम तौर पर संग्रहीत किया जाता है। ये विधियाँ स्तंभ के सूचकांक (या, स्तंभ के नाम का प्रतिनिधित्व करने वाला एक स्ट्रिंग मान) का प्रतिनिधित्व क

  1. हम JDBC का उपयोग करके MySQL डेटाबेस में किसी फ़ाइल को कैसे सम्मिलित/संग्रहीत करते हैं?

    सामान्य तौर पर, किसी फ़ाइल की सामग्री क्लोब . के अंतर्गत संग्रहीत की जाती है (TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT) MySQL डेटाबेस में डेटाटाइप। JDBC, क्लॉब डेटाटाइप के लिए समर्थन प्रदान करता है, किसी फ़ाइल की सामग्री को डेटाबेस में तालिका में संग्रहीत करने के लिए। setCharacterStream() तैयार विवरण

  1. Microsoft PowerPoint का उपयोग करके छवियों को कैसे क्रॉप करें

    माइक्रोसॉफ्ट पावरपॉइंट इसमें इतनी शक्ति है कि यह वास्तव में एक शानदार प्रस्तुति देने में आपकी मदद कर सकती है। अपनी एक पोस्ट में, मैंने पावरपॉइंट का उपयोग करके पृष्ठभूमि को हटाने के बारे में बताया था, जिसने वास्तव में आपको पृष्ठभूमि को हटाने के लिए Microsoft PowerPoint का उपयोग करने की अनुमति दी थी।