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

JDBC Blob डेटा टाइप क्या है? इसमें डेटा कैसे स्टोर और पढ़ें?


एक BLOB बाइनरी लार्ज ऑब्जेक्ट है जो अधिकतम 65535 कैरेक्टर की लंबाई के साथ परिवर्तनीय मात्रा में डेटा रख सकता है।

इनका उपयोग बड़ी मात्रा में बाइनरी डेटा स्टोर करने के लिए किया जाता है, जैसे इमेज या अन्य प्रकार की फाइलें। TEXT के रूप में परिभाषित फील्ड भी बड़ी मात्रा में डेटा रखते हैं। दोनों के बीच अंतर यह है कि स्टोर किए गए डेटा पर सॉर्ट और तुलना BLOB पर केस-सेंसिटिव होती है और TEXT फील्ड में केस-सेंसिटिव नहीं होती। आप BLOB या TEXT के साथ लंबाई निर्दिष्ट नहीं करते।

डेटाबेस में Blob स्टोर करना

JDBC प्रोग्राम का उपयोग करके डेटाबेस में Blob डेटाटाइप स्टोर करने के लिए नीचे दिए गए चरणों का पालन करें

चरण 1: डेटाबेस से कनेक्ट करें

आप DriverManager क्लास के getConnection() मेथड का उपयोग करके डेटाबेस से कनेक्ट कर सकते हैं।

MySQL URL जो jdbc:mysql://localhost/sampleDB है (जहां sampleDB डेटाबेस नाम है), यूजरनाम और पासवर्ड को पैरामीटर के रूप में getConnection() मेथड में पास करके MySQL डेटाबेस से कनेक्ट करें।

String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");

चरण 2: PreparedStatement बनाएं

Connection इंटरफ़ेस के prepareStatement() मेथड का उपयोग करके PreparedStatement ऑब्जेक्ट बनाएं। इस मेथड को पैरामीटर के रूप में INSERT क्वेरी (प्लेसहोल्डर के साथ) पास करें।

PreparedStatement pstmt = con.prepareStatement("INSERT INTO MyTableVALUES(?, ?)");

चरण 3: प्लेसहोल्डर पर मान सेट करें

PreparedStatement   इंटरफ़ेस के सेटर मेथड का उपयोग करके प्लेसहोल्डर पर मान सेट करें। कॉलम के डेटाटाइप के अनुसार मेथड चुनें। उदाहरण के लिए यदि कॉलम VARCHAR टाइप का है तो setString() मेथड का उपयोग करें और यदि यह INT टाइप का है तो आप setInt() मेथड का उपयोग कर सकते हैं।

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

pstmt.setString(1, "sample image"); // Blob टाइप डालना InputStream in = new FileInputStream("E:\\images\\cat.jpg"); pstmt.setBlob(2, in);

चरण 4: स्टेटमेंट निष्पादित करें

PreparedStatement इंटरफ़ेस के execute() मेथड का उपयोग करके उपरोक्त बनाए गए PreparedStatement ऑब्जेक्ट को निष्पादित करें।

डेटाबेस से Blob पुनर्प्राप्त करना

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

while(rs.next()) {    rs.getString("Name");    rs.getString("Type");    Blob blob = rs.getBlob("Logo"); }

Blob इंटरफ़ेस का getBytes() मेथड वर्तमान Blob ऑब्जेक्ट की सामग्री को पुनर्प्राप्त करता है और इसे बाइट ऐरे के रूप में लौटाता है।

getBlob() मेथड का उपयोग करके आप Blob की सामग्री को बाइट ऐरे में प्राप्त कर सकते हैं और FileOutputStream ऑब्जेक्ट के write() मेथड का उपयोग करके इमेज बना सकते हैं।

byte byteArray[] = blob.getBytes(1,(int)blob.length()); FileOutputStream outPutStream = new FileOutputStream("path"); outPutStream.write(byteArray);

उदाहरण

निम्नलिखित उदाहरण MySQL डेटाबेस में Blob डेटाटाइप वाली टेबल बनाता है, इसमें इमेज डालता है। इसे वापस पुनर्प्राप्त करता है और स्थानीय फाइल सिस्टम में स्टोर करता है।

import java.io.FileInputStream; import java.io.FileOutputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class BlobExample {    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 stmt = con.createStatement();       stmt.execute("CREATE TABLE SampleTable( Name VARCHAR(255), Image BLOB)");       System.out.println("Table Created");       // मान डालना       String query = "INSERT INTO SampleTable(Name,image) VALUES (?, ?)";       PreparedStatement pstmt = con.prepareStatement(query);       pstmt.setString(1, "sample image");       FileInputStream fin = new FileInputStream("E:\\images\\cat.jpg");       pstmt.setBlob(2, fin);       pstmt.execute();       // डेटा पुनर्प्राप्त करना       ResultSet rs = stmt.executeQuery("select * from SampleTable");       int i = 1;       System.out.println("Contents of the table are: ");       while(rs.next()) {          System.out.println(rs.getString("Name"));          Blob blob = rs.getBlob("Image");          byte byteArray[] = blob.getBytes(1,(int)blob.length());          FileOutputStream outPutStream = new          FileOutputStream("E:\\images\\blob_output"+i+".jpg");          outPutStream.write(byteArray);          System.out.println("E:\\images\\blob_output"+i+".jpg");          System.out.println();          i++;       }    } }

आउटपुट

Connection established...... Table Created Contents of the table are: sample image E:\images\blob_output1.jpg

  1. Android SQLite में BLOB डेटा टाइप का उपयोग कैसे करें? Android SQLite में BLOB डेटा टाइप का उपयोग कैसे करें?

    Android SQLite में BLOB डेटा टाइप का परिचय SQLite Android में एक ओपन-सोर्स SQL डेटाबेस है जो डिवाइस पर टेक्स्ट फ़ाइल के रूप में डेटा स्टोर करता है। Android में SQLite का बिल्ट-इन कार्यान्वयन शामिल है। यह सभी रिलेशनल डेटाबेस सुविधाओं का समर्थन करता है। इस डेटाबेस तक पहुँचने के लिए, आपको JDBC, ODBC आद

  1. JDBC में ResultSet क्या है? ResultSet ऑब्जेक्ट से डेटा कैसे पुनर्प्राप्त करें? JDBC में ResultSet क्या है? ResultSet ऑब्जेक्ट से डेटा कैसे पुनर्प्राप्त करें?

    JDBC में ResultSet इंटरफ़ेस SQL क्वेरी द्वारा उत्पन्न सारणीबद्ध डेटा को दर्शाता है। इसमें एक कर्सर होता है जो वर्तमान पंक्ति को इंगित करता है। प्रारंभ में, यह कर्सर पहली पंक्ति से पहले स्थित होता है।Result Set में पॉइंटर को घुमानाResultSet इंटरफ़ेस का next() मेथड वर्तमान (ResultSet) ऑब्जेक्ट के

  1. Windows Server क्या है और यह Windows से कैसे अलग है Windows Server क्या है और यह Windows से कैसे अलग है

    Windows OS ऑपरेटिंग सिस्टम बाजार के एक बड़े हिस्से पर कब्जा करता है। इस प्रकार, इसे सबसे लोकप्रिय ऑपरेटिंग सिस्टम में से एक माना जा सकता है। यह OS को 2 प्रमुख वेरिएंट में प्रदान करता है, अर्थात्, Windows for Desktop Windows Server Microsoft Windows Server 2022, Windows 11 का नवीनतम सर्वर