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

JDBC का उपयोग करके डेटाबेस में इमेज कैसे डालें?


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

और SQL डेटाबेस Blob (Binary Large Object) नामक एक डेटाटाइप प्रदान करते हैं जिसमें आप इमेज जैसे बड़े बाइनरी डेटा स्टोर कर सकते हैं।

JDBC का उपयोग करके इमेज स्टोर करना

यदि आपको JDBC प्रोग्राम का उपयोग करके डेटाबेस में इमेज स्टोर करने की आवश्यकता है तो Blob डेटाटाइप के साथ एक टेबल बनाएं जैसा कि नीचे दिखाया गया है:

CREATE TABLE Tutorial(Name VARCHAR(255), Type INT NOT NULL, Logo BLOB);

अब, JDBC का उपयोग करके डेटाबेस से कनेक्ट करें और उपरोक्त बनाई गई टेबल में मान डालने के लिए PreparedStatement तैयार करें:

String query = "INSERT INTO Tutorial(Name, Type, Logo) VALUES (?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(query);

PreparedStatement इंटरफ़ेस के सेटर मेथड का उपयोग करके प्लेसहोल्डर पर मान सेट करें और Blob डेटाटाइप के लिए setBinaryStream() मेथड का उपयोग करके मान सेट करें।

FileInputStream fin = new FileInputStream("javafx_logo.jpg"); 

pstmt.setBinaryStream(3, fin);

उदाहरण

निम्नलिखित उदाहरण दर्शाता है कि JDBC प्रोग्राम का उपयोग करके MySQL डेटाबेस में इमेज कैसे डालें। यहां हम Blob डेटाटाइप के साथ एक टेबल बना रहे हैं, टेबल में मान डाल रहे हैं (Blob टाइप के लिए BinaryStream ऑब्जेक्ट) और, टेबल की सामग्री पुनर्प्राप्त कर रहे हैं।

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class InsertingImageToDatabase {    public static void main(String args[]) throws Exception {       // ड्राइवर रजिस्टर करना       DriverManager.registerDriver(new com.mysql.jdbc.Driver());       // कनेक्शन प्राप्त करना       String mysqlUrl = "jdbc:mysql://localhost/sampleDB";       Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");       System.out.println("Connection established......");       // Statement बनाना       Statement stmt = con.createStatement();       // स्टेटमेंट निष्पादित करना       String createTable = "CREATE TABLE Tutorial( "          + "Name VARCHAR(255), "          + "Type VARCHAR(50), "          + "Logo BLOB)";       stmt.execute(createTable);       // मान डालना       String query = "INSERT INTO Tutorial(Name, Type, Logo) VALUES (?, ?, ?)";       PreparedStatement pstmt = con.prepareStatement(query);       pstmt.setString(1, "JavaFX");       pstmt.setString(2, "Java_library");       FileInputStream fin = new FileInputStream("E:\\images\\javafx_logo.jpg");       pstmt.setBinaryStream(3, fin);       pstmt.execute();       pstmt.setString(1, "CoffeeScript");       pstmt.setString(2, "scripting Language");       fin = new FileInputStream("E:\\images\\coffeescript_logo.jpg");       pstmt.setBinaryStream(3, fin);       pstmt.execute();       pstmt.setString(1, "Cassandra");       pstmt.setString(2, "NoSQL database");       fin = new FileInputStream("E:\\images\\cassandra_logo.jpg");       pstmt.setBinaryStream(3, fin);       pstmt.execute();       System.out.println("Data inserted");       ResultSet rs = stmt.executeQuery("Select *from Tutorial");       while(rs.next()) {          System.out.print("Name: "+rs.getString("Name")+", ");          System.out.print("Tutorial Type: "+rs.getString("Type")+", ");          System.out.print("Logo: "+rs.getBlob("Logo"));          System.out.println();       }    } }

आउटपुट

Connection established...... Data inserted Name: JavaFX, Tutorial Type: Java_library, Logo: com.mysql.jdbc.Blob@7dc5e7b4 Name: CoffeeScript, Tutorial Type: scripting Language, Logo: com.mysql.jdbc.Blob@1ee0005 Name: Cassandra, Tutorial Type: NoSQL database, Logo: com.mysql.jdbc.Blob@75a1cd57

नोट: आप JDBC प्रोग्राम का उपयोग करके केवल .gif या .jpeg या .png प्रकार की इमेज स्टोर और पुनर्प्राप्त कर सकते हैं।


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

    ResultSet इंटरफ़ेस Clob डेटाटाइप को पुनर्प्राप्त करने के लिए getClob() और getCharacterStream() नामक मेथड प्रदान करता है, जिसमें आमतौर पर फाइल की सामग्री संग्रहीत होती है।ये मेथड कॉलम के इंडेक्स को दर्शाने वाला एक पूर्णांक (या, कॉलम के नाम को दर्शाने वाला एक स्ट्रिंग मान) स्वीकार करते हैं और निर्दिष्

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

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

  1. Microsoft PowerPoint का उपयोग करके इमेज कैसे क्रॉप करें Microsoft PowerPoint का उपयोग करके इमेज कैसे क्रॉप करें

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