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

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


CLOB का अर्थ Character Large Object है, सामान्य तौर पर, एक SQL Clob एक बिल्ट-इन डेटाटाइप है और इसका उपयोग बड़ी मात्रा में टेक्स्टुअल डेटा स्टोर करने के लिए किया जाता है। इस डेटाटाइप का उपयोग करके, आप 2,147,483,647 कैरेक्टर तक डेटा स्टोर कर सकते हैं।

java.sql.Clob इंटरफ़ेस JDBC API का CLOB डेटाटाइप को दर्शाता है। चूंकि JDBC में Clob ऑब्जेक्ट SQL लोकेटर का उपयोग करके लागू किया जाता है, यह SQL CLOB के लिए एक तार्किक पॉइंटर रखता है (डेटा नहीं)।

MYSQL डेटाबेस इस डेटाटाइप के लिए चार वेरिएबल का उपयोग करके समर्थन प्रदान करता है।

  • TINYTEXT: अधिकतम 28-1 (255) कैरेक्टर वाला CLOB टाइप।

  • TEXT: अधिकतम 216-1 (65535) कैरेक्टर वाला CLOB टाइप।

  • MEDIUMTEXT: अधिकतम 224-1 (16777215) कैरेक्टर वाला CLOB टाइप।

  • LONGTEXT: अधिकतम 232-1 (4294967295) कैरेक्टर वाला CLOB टाइप।

डेटाबेस में टेबल में Clob डेटाटाइप स्टोर करना

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

चरण 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 Technologies(Name, Type, Article ) VALUES (?, ?, ?)");

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

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

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

pstmt.setString(1, "JavaFX"); pstmt.setString(2, "Java Library"); FileReader reader = new FileReader("E:\\images\\javafx.txt"); pstmt.setClob(3, reader); pstmt.execute();

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

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

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

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

while(rs.next()) {    System.out.println(rs.getString("Name"));    System.out.println(rs.getString("Type"));    Clob clob = rs.getClob("Article"); }

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

getClob() मेथड का उपयोग करके आप Clob की सामग्री को Reader ऑब्जेक्ट के रूप में प्राप्त कर सकते हैं और FileOutputStream ऑब्जेक्ट के write() मेथड का उपयोग करके पुनर्प्राप्त सामग्री के साथ टेक्स्ट फाइल बना सकते हैं।

Reader r = clob.getCharacterStream(); char cbuf[] = new char[r.read()]; r.read(cbuf); FileOutputStream outPutStream = new FileOutputStream("E:\\images\\clob_output"+i+".txt"); outPutStream.write(cbuf.toString().getBytes());

उदाहरण

निम्नलिखित उदाहरण MySQL डेटाबेस में Clob डेटाटाइप वाली टेबल बनाता है। इसमें फाइल से बड़ा टेक्स्ट डेटा डालता है। टेक्स्ट को वापस पुनर्प्राप्त करता है और दूसरी टेक्स्ट फाइल में स्टोर करता है।

import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.sql.Clob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class ClobExample {    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 Technologies( Name VARCHAR(255), Type VARCHAR(255), Article LONGTEXT)");       System.out.println("Table Created......");       // मान डालना       String query = "INSERT INTO Technologies(Name, Type, Article ) VALUES (?, ?, ?)";       PreparedStatement pstmt = con.prepareStatement(query);       pstmt.setString(1, "JavaFX");       pstmt.setString(2, "Java Library");       FileReader reader = new FileReader("E:\\images\\javafx.txt");       pstmt.setClob(3, reader);       pstmt.execute();       pstmt.setString(1, "CoffeeScript");       pstmt.setString(2, "Scripting Language");       reader = new FileReader("E:\\images\\coffeescript.txt");       pstmt.setClob(3, reader);       pstmt.execute();       pstmt.setString(1, "Cassandra");       pstmt.setString(2, "NoSQL Database");       reader = new FileReader("E:\\images\\cassandra.txt");       pstmt.setClob(3, reader);       pstmt.execute();       // डेटा पुनर्प्राप्त करना       ResultSet rs = stmt.executeQuery("select * from Technologies");       int j = 0;       System.out.println("Contents of the table are: ");       while(rs.next()) {          System.out.println(rs.getString("Name"));          Clob clob = rs.getClob("Article");          Reader r = clob.getCharacterStream();          String filePath = "E:\\Data\\clob_output"+j+".txt";          FileWriter writer = new FileWriter(filePath);          int i;          while ((i=r.read())!=-1) {             writer.write(i);          }          writer.close();          System.out.println(filePath);          j++;       }    } }

आउटपुट

Connection established...... Table Created...... Contents of the table are: JavaFX Java Library E:\images\clob_output1.txt CoffeeScript Scripting Language E:\images\clob_output2.txt Cassandra NoSQL Database E:\images\clob_output3.txt

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

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

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

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

  1. AirDrop: Mac, iPhone और iPad के बीच सुरक्षित, त्वरित फाइल शेयरिंग AirDrop: Mac, iPhone और iPad के बीच सुरक्षित, त्वरित फाइल शेयरिंग

      अब, अन्य Mac, iPhone और iPad को तुरंत फाइलें भेजें जैसे-जैसे तकनीक आगे बढ़ती है, पुराने को नए से बदल दिया जाता है। इस संबंध में, विश्वसनीय ईमेल को भी AirDrop द्वारा प्रतिस्थापित किया जा सकता है। यह आश्चर्यजनक लग सकता है, लेकिन AirDrop वास्तव में उबाऊ ईमेल की तुलना में एक बेहतर संचार समाधान ह