Computer >> Máy Tính >  >> Lập trình >> MySQL

Viết ví dụ JDBC để chèn giá trị cho kiểu dữ liệu Clob vào bảng?

Giả sử chúng ta đã có 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    |       |
+---------+--------------+------+-----+---------+-------+

Nếu bạn cần chèn giá trị int vào kiểu dữ liệu clob bằng chương trình JDBC, bạn cần sử dụng các phương thức đọc nội dung của tệp và đặt thành các hàng cơ sở dữ liệu. Giao diện PreparedStatement cung cấp các phương thức như vậy.

void setCharacterStream (int tham sốIndex, trình đọc Reader) phương thức đặt nội dung của đối tượng reader dưới dạng giá trị cho tham số tại chỉ mục đã cho. Các biến thể khác của phương pháp này là:

  • void setCharacterStream (int parameterIndex, Reader reader, int length)

  • void setCharacterStream (int parameterIndex, Reader reader, long length)

void setClob (int parameterIndex, Clob x) phương thức đặt đối tượng java.sql.Clob đã cho làm giá trị cho tham số tại chỉ mục đã cho. Các biến thể khác của phương pháp này là:

  • void setClob (int tham sốIndex, trình đọc Reader)

  • void setClob (int parameterIndex, Reader reader, long length)

Bạn có thể đặt giá trị cho kiểu dữ liệu Clob bằng một trong hai phương pháp này.

Ví dụ

Ví dụ sau đặt giá trị cho kiểu dữ liệu Clob bằng phương thức setClob ().

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertingValueInClob {
   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......");
      //Inserting values
      String query = "INSERT INTO MyData(Name, Article ) VALUES (?, ?)";
      PreparedStatement pstmt = con.prepareStatement(query);
      pstmt.setString(1, "JavaFX");
      FileReader reader = new FileReader("E:\\images\\javafx.txt");
      pstmt.setClob(2, reader);
      pstmt.execute();
      System.out.println("Data inserted");
   }
}

Đầu ra

Connection established......
Table Created......
Contents of the table are:
JavaFX
E:\images\MyData_clob_output1.txt

Nếu bạn cố gắng xem giá trị clob trong bản ghi bằng cách sử dụng bàn làm việc MySQL, bạn có thể thấy dữ liệu văn bản được chèn như được hiển thị bên dưới:

Viết ví dụ JDBC để chèn giá trị cho kiểu dữ liệu Clob vào bảng?