jdbctemplate对clob字段无法保存

tyjohn 2010-01-08 05:51:29
小弟的代码:
public void save(final Lob lob) {
final String keyId = super.generateId(lob);
String sql = " INSERT INTO ta_lob(id,foreignid,type,content,contentall)"
+ " VALUES(?,?,?,?,?)";
jdbcTemplate.execute(sql,
new AbstractLobCreatingPreparedStatementCallback(
lobHandler) {
protected void setValues(PreparedStatement ps,
LobCreator lobCreator) throws SQLException{
ps.setString(1, keyId);
ps.setString(2, lob.getForeignId());
ps.setString(3, lob.getType());
lobCreator.setClobAsString(ps, 4, lob.getContent());
lobCreator.setClobAsString(ps, 5, lob.getContentAll());
}
});
}
错误信息:
org.springframework.dao.DataAccessResourceFailureException: Could not create Oracle LOB; nested exception is java.lang.AbstractMethodError
Caused by: java.lang.AbstractMethodError
at oracle.jdbc.driver.OracleConnection.unwrapCompletely(OracleConnection.java:5149)
at oracle.jdbc.driver.OracleConnection.physicalConnectionWithin(OracleConnection.java:5198)
at oracle.sql.CLOB.createTemporary(CLOB.java:1009)
at oracle.sql.CLOB.createTemporary(CLOB.java:956)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.prepareLob(OracleLobHandler.java:393)
at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.createLob(OracleLobHandler.java:340)
at org.springframework.jdbc.support.lob.OracleLobHandler$OracleLobCreator.setClobAsString(OracleLobHandler.java:265)
at com.dhcc.ta.dao.LobDao$1.setValues(LobDao.java:44)
at org.springframework.jdbc.core.support.AbstractLobCreatingPreparedStatementCallback.doInPreparedStatement(AbstractLobCreatingPreparedStatementCallback.java:70)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:566)
at com.dhcc.ta.dao.LobDao.save(LobDao.java:36)
at com.dhcc.ta.service.LobService.save(LobService.java:17)
at com.dhcc.ta.service.LobService$$FastClassByCGLIB$$452e3693.invoke()
at net.sf.cglib.proxy...
大家看看是怎么回事呀,网上找了好多,说是oracle驱动的问题,但是我的代码对clob的读取没有问题,说明应该不是驱动的问题,请赐教
...全文
163 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazylaa 2010-01-09
  • 打赏
  • 举报
回复
wenjjing2lianee 2010-01-08
  • 打赏
  • 举报
回复

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧