编写一个JDBC示例,用于将CLOB数据类型的值插入表中?
假设我们已经在数据库中拥有一个名为MyData的表,其描述如下。
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Article | longtext | YES | | NULL | | +---------+--------------+------+-----+---------+-------+
如果您需要使用JDBC程序将值插入到clob数据类型中,则需要使用读取文件内容并将其设置为数据库行的方法。PreparedStatement接口提供了此类方法。
**void setCharacterStream(int parameterIndex, Reader reader)** 方法将reader对象的内容设置为给定索引处参数的值。此方法的其他变体是
void setCharacterStream(int parameterIndex, Reader reader, int length)
void setCharacterStream(int parameterIndex, Reader reader, long length)
**void setClob(int parameterIndex, Clob x)** 方法将给定的java.sql.Clob对象设置为给定索引处参数的值。此方法的其他变体是
void setClob(int parameterIndex, Reader reader)
void setClob(int parameterIndex, 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:///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 Workbench查看记录中的clob值,则可以看到如下所示的插入文本数据

广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP