以下是一个使用 JDBC 将 Clob 数据类型的值插入表中的示例:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertClobDataExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/db_name";
String username = "username";
String password = "password";
try {
// 加载 JDBC 驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
// 创建预编译的 SQL 语句
String sql = "INSERT INTO table_name (clob_column) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
// 读取 Clob 数据
String clobData = readClobDataFromFile("path_to_clob_data.txt");
// 将 Clob 数据设置到预编译的 SQL 语句中
pstmt.setCharacterStream(1, new java.io.StringReader(clobData), clobData.length());
// 执行 SQL 语句
pstmt.executeUpdate();
// 关闭连接和资源
pstmt.close();
conn.close();
System.out.println("Clob 数据插入成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
private static String readClobDataFromFile(String filePath) {
StringBuilder data = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new FileReader(filePath));
String line;
while ((line = reader.readLine()) != null) {
data.append(line);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return data.toString();
}
}
```
请确保根据实际的数据库连接 URL、数据库用户名和密码修改以下变量的值:
- `url`:数据库连接 URL,格式为 `jdbc:mysql://host:port/database`。
- `username`:数据库用户名。
- `password`:数据库密码。
还有以下变量需要根据实际情况修改:
- `sql`:要执行的 SQL 语句,包括将 Clob 数据插入到表中的 INSERT 语句。
- `table_name`:要插入数据的表名。
- `clob_column`:Clob 数据存储字段的列名。
确保将 Clob 数据存储在 `path_to_clob_data.txt` 文件中,并将其路径传递给 `readClobDataFromFile` 方法。