Tập hợp kết quả giao diện cung cấp phương thức có tên getClob () để truy xuất kiểu dữ liệu clob từ một bảng trong cơ sở dữ liệu. Ngoài ra, nó cũng cung cấp một phương thức có tên getCharacterStream ()
Giống như getClob (), phương thức này cũng chấp nhận một số nguyên đại diện cho chỉ số 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à không giống như phương thức getClob () (trả về một đối tượng Clob), phương thức này trả về một đối tượng của lớp Reader.
Ví dụ
Giả sử chúng ta đã tạo một bảng có tên MyData 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 dữ liệu văn bản lớn vào đó với tên JavaFX. Chương trình sau lấy nội dung của bảng MyData bằng phương thức getString () và getCharacterStream ().
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++; } } }
Đầu ra
Connection established...... Contents of the table...... JavaFX E:\Data\clob_output0.txt
Nếu bạn quan sát tệp trong đường dẫn thu được, bạn có thể thấy nội dung của Clob được truy xuất từ bảng như hình dưới đây: