本文共 659 字,大约阅读时间需要 2 分钟。
Druid的坑
当查询数据库的Clob转换为Oracle Clob类型的时候。
java.lang.ClassCastException:com.alibaba.druid.proxy.jdbc.ClobProxyImplcannot be cast to oracle.sql.CLOB
问题原因
ClobProxyImpl不能转换为Oracle的Clob字段,这也是醉了。
原因是Druid为Clob字段增加了代理类:com.alibaba.druid.proxy.jdbc.ClobProxyImpl,然后代码里面强制转换成Oracle的Clob就出现了这个问题。
解决方案
现在的解决方案是先转换为Druid的代理类ClobProxy对象,然后获取原生的Oracle Clob字段内容即可。
publicclassClobUtil{
publicstaticCLOB parseOracleClob(Clobclob){
SerializableClobsclob=(SerializableClob)clob;
ClobwrappedClob=sclob.getWrappedClob();
// 解决Druid的坑
if(wrappedClobinstanceofClobProxy){
ClobProxyclobProxy=(ClobProxy)wrappedClob;
wrappedClob=clobProxy.getRawClob();
}
return(CLOB)wrappedClob;
}
}
转载地址:http://ornnx.baihongyu.com/