编写一个 JDBC 示例,用于将 Clob 数据类型的值插入表中?
jdbcjava 8mysqlmysqli database
假设数据库中已经有一个名为 MyData 的表,其描述如下。
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
如果您需要使用 JDBC 程序将 int 值插入到 clob 数据类型,则需要使用读取文件内容并设置到数据库行的方法。PreparedStatement 接口提供了此类方法。
void setCharacterStream(int paramterIndex, Reader reader) 方法将 reader 对象的内容设置为给定索引处的参数的值。此方法的其他变体包括:
void setCharacterStream(int paramterIndex, Reader reader, int length)
void setCharacterStream(int paramter Index, Reader reader, long length)
void setClob(int paramterIndex, Clob x) 方法将给定的 java.sql.Clob 对象设置为给定索引处的参数的值。此方法的其他变体包括:
void setClob(int paramterIndex, Reader reader)
void setClob(int paramterIndex, Reader reader, long length)
您可以使用其中任一方法将值设置为 Clob 数据类型。
示例
以下示例使用 setClob() 方法将值设置为 Clob 数据类型。
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"); } }
输出
Connection established...... Table Created...... Contents of the table are: JavaFX E:\images\MyData_clob_output1.txt
如果您尝试使用 MySQL 工作台查看记录中的 clob 值,您可以看到插入的文本数据,如下所示: