ফলাফল সেট ইন্টারফেস একটি ডাটাবেসের একটি টেবিল থেকে ক্লব ডেটাটাইপ পুনরুদ্ধার করার জন্য getClob() নামের পদ্ধতি প্রদান করে। এটি ছাড়াও এটি getCharacterStream()
নামে একটি পদ্ধতি প্রদান করেgetClob() এর মতো এই পদ্ধতিটিও কলামের সূচকের প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা গ্রহণ করে (অথবা, কলামের নামের প্রতিনিধিত্বকারী একটি স্ট্রিং মান) এবং নির্দিষ্ট কলামে মান পুনরুদ্ধার করে। পার্থক্যটি getClob() পদ্ধতির বিপরীতে (যা একটি Clob অবজেক্ট প্রদান করে) এই পদ্ধতিটি রিডার ক্লাসের একটি অবজেক্ট প্রদান করে।
উদাহরণ
অনুমান করুন আমরা নিম্নলিখিত বিবরণ সহ ডাটাবেসে MyData নামে একটি টেবিল তৈরি করেছি।
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
এবং, আমরা জাভাএফএক্স নামে এটিতে বড় পাঠ্য ডেটা সন্নিবেশ করেছি। নিম্নলিখিত প্রোগ্রামটি getString() এবং getCharacterStream() পদ্ধতি ব্যবহার করে টেবিলের MyData বিষয়বস্তু পুনরুদ্ধার করে।
import java.io.FileWriter;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RetrievingClob_CharStream {
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/sampleDB";
Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
System.out.println("Connection established......");
//Creating a Statement object
Statement stmt = con.createStatement();
//retrieving the data
ResultSet rs = stmt.executeQuery("select * from MyData");
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...... Contents of the table...... JavaFX E:\Data\clob_output0.txt
আপনি যদি প্রাপ্ত পথে ফাইলটি পর্যবেক্ষণ করেন তবে আপনি নীচে দেখানো সারণী থেকে পুনরুদ্ধার করা ক্লোবের বিষয়বস্তু দেখতে পাবেন:
