使用setString()从String转换为Clob不起作用

Bug*_*ash 6 java jdbc derby clob

我正在尝试将String转换为Clob以存储在数据库中.我有以下代码:

Clob clob = connection.createClob();
System.out.println("clob before setting: " + clob);
clob.setString(1,"Test string" );
System.out.println("clob after setting: " + clob);
System.out.println("clob back to string: " + clob.toString());
Run Code Online (Sandbox Code Playgroud)

当我运行它时,Clob没有被设置,输出如下:

clob before setting: org.apache.derby.impl.jdbc.EmbedClob@1f5483e
clob after setting: org.apache.derby.impl.jdbc.EmbedClob@1f5483e
clob back to string: org.apache.derby.impl.jdbc.EmbedClob@1f5483e
Run Code Online (Sandbox Code Playgroud)

我看起来到处都说使用setString方法,我不知道为什么这对我不起作用.

a_h*_*ame 8

你并不需要中间Clob的实例,只要使用setString()PreparedStatement:

PreparedStatement stmt = connection.prepareStatement("insert into clob_table (id, clob_column) values (?,?)";
stmt.setInt(1, 42);
stmt.setString(2, "This is the CLOB");
stmt.executeUpdate();
connection.commit();
Run Code Online (Sandbox Code Playgroud)