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

Java में CLOB टाइप को String में कैसे कन्वर्ट करें?

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

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

MySQL डेटाबेस चार वेरिएबल्स का उपयोग करके इस डेटा टाइप के लिए सपोर्ट प्रदान करता है: TINYTEXT, TEXT, MEDIUMTEXT, और LONGTEXT।

CLOB डेटा टाइप को स्ट्रिंग में कन्वर्ट करने के लिए

  • getClob() या getCharacterStream() मेथड का उपयोग करके टेबल से Clob वैल्यू पुनर्प्राप्त करें।
Reader r = clob.getCharacterStream();
  • पुनर्प्राप्त कैरेक्टर स्ट्रीम से प्रत्येक कैरेक्टर को एक-एक करके पढ़ें और उन्हें StringBuilder या StringBuffer में जोड़ें।
int j = 0; 
StringBuffer buffer = new StringBuffer(); 
int ch; 
while ((ch = r.read())!=-1) { 
    buffer.append(""+(char)ch); 
} 
System.out.println(buffer.toString()); 
j++;
  • अंत में, प्राप्त स्ट्रिंग को प्रदर्शित या स्टोर करें।
System.out.println(buffer.toString());

उदाहरण

आइए MySQL डेटाबेस में technologies_data नाम से एक टेबल बनाएं:

CREATE TABLE Technologies (Name VARCHAR(255), Type VARCHAR(255), Article LONGTEXT);

टेबल का तीसरा कॉलम Article CLOB टाइप का डेटा स्टोर करता है।

निम्न JDBC प्रोग्राम प्रारंभ में technologies_data टेबल में 5 रिकॉर्ड डालता है, टेक्स्ट फाइल (उसकी सामग्री) को आर्टिकल कॉलम (CLOB टाइप) में स्टोर करता है। फिर, यह टेबल के रिकॉर्ड्स को पुनर्प्राप्त करता है, और नाम और आर्टिकल की सामग्री प्रदर्शित करता है। यहां, हम पुनर्प्राप्त CLOB के डेटा को String में कन्वर्ट करने और प्रदर्शित करने का प्रयास कर रहे हैं।

import java.io.FileReader; 
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 ClobToString { 
    public static void main(String args[]) throws Exception { 
        // ड्राइवर रजिस्टर करना 
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        // कनेक्शन प्राप्त करना 
        String mysqlUrl = "jdbc:mysql://localhost/sampledatabase"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Connection established......"); 
        // स्टेटमेंट ऑब्जेक्ट बनाना 
        Statement stmt = con.createStatement(); 
        // मान डालना 
        String query = "INSERT INTO Technologies_data VALUES (?, ?, ?)"; 
        PreparedStatement pstmt = con.prepareStatement(query); 
        pstmt.setString(1, "JavaFX"); 
        pstmt.setString(2, "Java Library"); 
        FileReader reader = new FileReader("E:\\images\\javafx_contents.txt"); 
        pstmt.setClob(3, reader); 
        pstmt.execute(); 
        pstmt.setString(1, "CoffeeScript"); 
        pstmt.setString(2, "Scripting Language"); 
        reader = new FileReader("E:\\images\\coffeescript_contents.txt"); 
        pstmt.setClob(3, reader); 
        pstmt.execute(); 
        pstmt.setString(1, "Cassandra"); 
        pstmt.setString(2, "NoSQL Database"); 
        reader = new FileReader("E:\\images\\cassandra_contents.txt"); 
        pstmt.setClob(3, reader); 
        pstmt.execute(); 
        // डेटा पुनर्प्राप्त करना 
        ResultSet rs = stmt.executeQuery("select * from Technologies_data"); 
        System.out.println("Contents of the table are: "); 
        while(rs.next()) { 
            System.out.println("Article: "+rs.getString("Name")); 
            Clob clob = rs.getClob("Article"); 
            Reader r = clob.getCharacterStream(); 
            StringBuffer buffer = new StringBuffer(); 
            int ch; 
            while ((ch = r.read())!=-1) { 
                buffer.append(""+(char)ch); 
            } 
            System.out.println("Contents: "+buffer.toString()); 
            System.out.println(" "); 
        } 
    } 
}

आउटपुट

Connection established...... 
Contents of the table are: 
Article: JavaFX 
Contents: JavaFX is a Java library using which you can develop Rich Internet Applications. By using Java technology, these applications have a browser penetration rate of 76%. 
Article: CoffeeScript 
Contents: CoffeeScript is a lightweight language based on Ruby and Python which transcompiles (compiles from one source language to another) into JavaScript. It provides better syntax avoiding the quirky parts of JavaScript, still retaining the flexibility and beauty of the language. 
Article: Cassandra 
Contents: Apache Cassandra is a highly scalable, high-performance distributed database designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. It is a type of NoSQL database. Let us first understand what a NoSQL database does.
  1. - Java गाइड: Strings को Integers में बदलें - व्यावहारिक उदाहरण और सर्वोत्तम अभ्यास

    Java में String को Int में कैसे बदलें? यदि String में केवल नंबर हैं, तो String को Int में बदलने का सबसे अच्छा तरीका Integer.parseInt() या Integer.valueOf() का उपयोग करना है। यदि String में नंबर और वर्ण दोनों हैं, तो हमें नंबर निकालने के लिए रेगुलर एक्सप्रेशन का उपयोग करना होगा और फिर परिणामी String

  1. - Java Map को JSON में बदलना: Jackson, Gson, और org.json के साथ चरण-दर-चरण गाइड

    Java Map को JSON में बदलने के कई तरीके हैं। Java Arrays और Maps को JSON में बदलना और इसके विपरीत करना काफी आम है। इस पोस्ट में, हम Java Map को JSON में बदलने के 3 अलग-अलग उदाहरण देखेंगे। हम Jackson, Gson और org.json लाइब्रेरी का उपयोग करेंगे। Jackson का उपयोग करके Java Map को JSON में बदलें निम्न उद

  1. - Java में String तुलना में महारत: Equals, equalsIgnoreCase, और '==' से बचना

    स्ट्रिंग्स की समानता के लिए तुलना करने के लिए, आपको String ऑब्जेक्ट के equals या equalsIgnoreCase मेथड्स का उपयोग करना चाहिए। हम यह भी देखेंगे कि हमें स्ट्रिंग्स की तुलना के लिए == ऑपरेटर का उपयोग क्यों नहीं करना चाहिए। equals() मेथड के साथ स्ट्रिंग्स की तुलना यदि हमें Java में दो स्ट्रिंग्स की तुलन