在如下环境中hibernate3 c3p0 oracle操作clob字段的注意事项:
1、使用hibernate3 jar包
使用c3p0 http://repo1.maven.org/maven2/c3p0/c3p0/0.9.1/
c3p0 oracle 支持 http://repo1.maven.org/maven2/c3p0/c3p0-oracle-thin-extras/0.9.0/
使用oracle9的ojdbc14.jar,不能使用oracle10g的ojdbc14.jar,因为次c3p0不兼容。
2、样例程序
String s = “。。。。”;
char[] c = s.toCharArray() ;
final StringBuffer sql = new StringBuffer("UPDATE table set blob = ?");
prestmt = connect.prepareStatement(sql.toString());
try{
oracle.sql.CLOB newClob = OracleUtils.createTemporaryCLOB(prestmt.getConnection(),false,oracle.sql.CLOB.DURATION_CALL) ;
newClob.putChars(1,c) ;
prestmt.executeUpdate();
}catch(Exception e){throw e;
}
其中OracleUtils是com.mchange.v2.c3p0.dbms.OracleUtils 。
其实这实际是使用c3p0来保存oracle clob字段,和hibernate没有直接关系,hibernate是如何处理?
下一步解决吧。
1、使用hibernate3 jar包
使用c3p0 http://repo1.maven.org/maven2/c3p0/c3p0/0.9.1/
c3p0 oracle 支持 http://repo1.maven.org/maven2/c3p0/c3p0-oracle-thin-extras/0.9.0/
使用oracle9的ojdbc14.jar,不能使用oracle10g的ojdbc14.jar,因为次c3p0不兼容。
2、样例程序
String s = “。。。。”;
char[] c = s.toCharArray() ;
final StringBuffer sql = new StringBuffer("UPDATE table set blob = ?");
prestmt = connect.prepareStatement(sql.toString());
try{
oracle.sql.CLOB newClob = OracleUtils.createTemporaryCLOB(prestmt.getConnection(),false,oracle.sql.CLOB.DURATION_CALL) ;
newClob.putChars(1,c) ;
prestmt.executeUpdate();
}catch(Exception e){throw e;
}
其中OracleUtils是com.mchange.v2.c3p0.dbms.OracleUtils 。
其实这实际是使用c3p0来保存oracle clob字段,和hibernate没有直接关系,hibernate是如何处理?
下一步解决吧。