【发布时间】:2013-09-27 07:50:41
【问题描述】:
我正在尝试将 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());
当我运行这个 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
我到处都说要使用 setString 方法,我不知道为什么这对我不起作用。
【问题讨论】:
-
您可以在
PreparedStatement上简单地使用setString()。无需创建中间Clob实例。 -
@BugalugsNash:您错误地假设 Clob.toString() 返回 Clob 内容。事实并非如此。因此,您的调试输出无助于诊断问题。而且我不确定您是否有任何问题。
-
@a_horse_with_no_name 我正在尝试将一行插入到具有 Clob 作为数据类型的表中,因此我正在使用带有变量“?”的准备好的语句,然后尝试绑定Clob 到那个变量。我不明白你的建议,但我认为它不适用于我。
-
@Codo 如何访问 clob 内容? toString() 方法是谷歌建议的,它返回一个字符串,所以我看不到问题
-
正如我所说:没有必要使用
Clob实例。setString()直接 就可以了。看我的回答。