我正在将clob数据插入mysql database...here是我的代码
Clob cl=dbCon.createClob();
cl.setString(1,userAbout);
dbCon.setAutoCommit(false);
PreparedStatement insertClob=dbCon.prepareStatement("UPDATE user_data SET user_about=? WHERE user_id=?");
insertClob.setClob(1,cl);
insertClob.setInt(2,userId);
int count= insertClob.executeUpdate();
if(count==1){dbCon.commit();dbCon.close();out.write("success");}
else{dbCon.rollback();dbCon.close();out.print("error");}这是抛出一个异常
java.lang.AbstractMethodError: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.createClob()Ljava/sql/Clob;这里有什么问题?我怎么才能解决它呢?
发布于 2013-01-13 00:55:23
不管怎样,你不需要createClob()。我发现使用setCharacterStream()要稳定得多(所有的驱动程序对它的支持也更好)。
StringReader reader = new StringReader(userAbout);
PreparedStatement insertClob = dbCon.prepareStatement("UPDATE user_data SET user_about=? WHERE user_id=?");
insertClob.setCharacterStream(1, reader, userAbout.length());
insertClob.setInt(2,userId);
int count= insertClob.executeUpdate();这也适用于INSERT语句。不需要创建任何中间的clob (或blob)对象。
请注意,我将错误的索引8更改为正确的索引2,以匹配UPDATE语句中的占位符。
许多现代驱动程序也可以很好地处理CLOB列的“简单”setString()。这是值得一试的--这将进一步减少代码。
https://stackoverflow.com/questions/14295506
复制相似问题