কম্পিউটার

কিভাবে একটি CLOB প্রকারকে জাভাতে স্ট্রিং এ রূপান্তর করবেন?


CLOB মানে সাধারণভাবে ক্যারেক্টার লার্জ অবজেক্ট, একটি SQL Clob হল একটি অন্তর্নির্মিত ডেটাটাইপ এবং এটি প্রচুর পরিমাণে পাঠ্য তথ্য সংরক্ষণ করতে ব্যবহৃত হয়। এই ডেটাটাইপ ব্যবহার করে, আপনি 2,147,483,647 অক্ষর পর্যন্ত ডেটা সংরক্ষণ করতে পারেন৷

JDBC API-এর java.sql.Clob ইন্টারফেস CLOB ডেটাটাইপকে উপস্থাপন করে। যেহেতু JDBC-তে ক্লোব অবজেক্ট একটি SQL লোকেটার ব্যবহার করে প্রয়োগ করা হয়, তাই এটি SQL CLOB-তে একটি লজিক্যাল পয়েন্টার রাখে (ডেটা নয়)।

MySQL TINYTEXT, TEXT, MEDIUMTEXT এবং, LONGTEXT নামে চারটি ভেরিয়েবল ব্যবহার করে ডাটাবেস এই ডেটা টাইপের জন্য সমর্থন প্রদান করে৷

CLOB ডেটা টাইপকে স্ট্রিং-এ রূপান্তর করতে

  • getClob() ব্যবহার করে একটি টেবিল থেকে Clob মান পুনরুদ্ধার করুন অথবা getCharacterStream() প্রস্তুত স্টেটমেন্টের পদ্ধতি ইন্টারফেস।
Reader r = clob.getCharacterStream();
  • অক্ষরের পুনরুদ্ধার করা স্ট্রীম থেকে প্রতিটি অক্ষর একে একে পড়ুন এবং সেগুলিকে স্ট্রিংবিল্ডারে যুক্ত করুন অথবা স্ট্রিংবাফার .
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());

উদাহরণ

technologies_data নামের একটি টেবিল তৈরি করা যাক MySQL ডাটাবেসে নিম্নলিখিত ক্যোয়ারী ব্যবহার করে −

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

সারণী নিবন্ধের তৃতীয় কলামটি CLOB টাইপের ডেটা সংরক্ষণ করে।

JDBC প্রোগ্রাম অনুসরণ করে প্রাথমিকভাবে 5 টি রেকর্ড সন্নিবেশ করায় technologies_data টেবিলে টেক্সট ফাইল (এর বিষয়বস্তু) সংরক্ষণ করে এটি নিবন্ধ কলামে (CLOB প্রকার)।

তারপর, এটি টেবিলের রেকর্ড পুনরুদ্ধার করে এবং নিবন্ধের নাম এবং বিষয়বস্তু প্রদর্শন করে। এখানে, আমরা পুনরুদ্ধার করা CLOB-এর ডেটা স্ট্রিং-এ রূপান্তরিত করার চেষ্টা করছি এবং এটি প্রদর্শন করছি৷

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 {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/sampledatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating a Statement object
      Statement stmt = con.createStatement();
      //Inserting values
      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();
      //Retrieving the data
      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. জাভাতে একটি স্ট্রিংকে একটি ইনপুটস্ট্রিম অবজেক্টে কীভাবে রূপান্তর করবেন?

  2. জাভা - উদাহরণ সহ কিভাবে স্ট্রিংকে int-এ রূপান্তর করা যায়

  3. কিভাবে জাভা মানচিত্রকে JSON এ রূপান্তর করবেন

  4. জাভাতে স্ট্রিংগুলি কীভাবে তুলনা করবেন