Tập hợp kết quả giao diện cung cấp các phương thức có tên getClob () và getCharacterStream () để truy xuất Clob kiểu dữ liệu, trong đó nội dung của tệp thường được lưu trữ.
Các phương thức này chấp nhận một số nguyên đại diện cho chỉ mục của cột (hoặc, một giá trị Chuỗi đại diện cho tên của cột) và truy xuất giá trị tại cột được chỉ định.
Sự khác biệt là phương thức getClob () trả về một đối tượng Clob và phương thức getCgaracterStream () trả về một đối tượng Reader chứa nội dung của kiểu dữ liệu Clob.
Ví dụ
Giả sử chúng ta đã tạo một bảng có tên Các bài báo trong cơ sở dữ liệu với mô tả sau.
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
Và, chúng tôi đã chèn ba bài báo vào trong đó với tên là bài báo 1, bài 2 và bài 3 như hình dưới đây:
Ví dụ
Chương trình sau truy xuất nội dung của bảng Article bằng cách sử dụng các phương thức getString () và getClob () và lưu nó vào các tệp được chỉ định.
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 RetrievingFileFromDatabase { 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 aStatement Statement stmt = con.createStatement(); //Retrieving the data ResultSet rs = stmt.executeQuery("select * from Articles"); 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 reader = clob.getCharacterStream(); String filePath = "E:\\Data\\clob_output"+j+".txt"; FileWriter writer = new FileWriter(filePath); int i; while ((i = reader.read())!=-1) { writer.write(i); } writer.close(); System.out.println(filePath); j++; } } }
Đầu ra
Connection established...... Contents of the table are: article1 E:\Data\clob_output0.txt article2 E:\Data\clob_output1.txt article3 E:\Data\clob_output2.txt