7

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 メソッドを使用するように言われていますが、なぜこれがうまくいかないのかわかりません。

4

3 に答える 3

9

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();
于 2013-09-22T08:55:07.740 に答える
2

ダービーで機能するかどうかはわかりませんが、休止状態では次を使用できます。

public Clob createClob(org.hibernate.Session s, String text) {
    return s.getLobHelper().createClob(text);
}
于 2013-11-05T18:19:59.613 に答える