阿里Druid连接池的坑。。

Posted Java技术栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里Druid连接池的坑。。相关的知识,希望对你有一定的参考价值。


Druid的坑

当查询数据库的Clob转换为Oracle Clob类型的时候。

 
   
   
 
  1. java.lang.ClassCastException: com.alibaba.druid.proxy.jdbc.ClobProxyImpl cannot be cast to oracle.sql.CLOB

问题原因

ClobProxyImpl不能转换为Oracle的Clob字段,这也是醉了。

原因是Druid为Clob字段增加了代理类:com.alibaba.druid.proxy.jdbc.ClobProxyImpl,然后代码里面强制转换成Oracle的Clob就出现了这个问题。

解决方案

现在的解决方案是先转换为Druid的代理类ClobProxy对象,然后获取原生的Oracle Clob字段内容即可。

 
   
   
 
  1. public class ClobUtil {

  2.    public static CLOB parseOracleClob(Clob clob) {

  3.        SerializableClob sclob = (SerializableClob) clob;

  4.        Clob wrappedClob = sclob.getWrappedClob();

  5.        // 解决Druid的坑

  6.        if (wrappedClob instanceof ClobProxy) {

  7.            ClobProxy clobProxy = (ClobProxy) wrappedClob;

  8.            wrappedClob = clobProxy.getRawClob();

  9.        }

  10.        return (CLOB) wrappedClob;

  11.    }

  12. }



以上是关于阿里Druid连接池的坑。。的主要内容,如果未能解决你的问题,请参考以下文章

阿里巴巴Druid数据库连接池的使用

阿里巴巴主流数据库连接池Druid入门

Druid数据库连接池的一般使用

DRUID连接池的简单使用

DRUID连接池的实用 配置详解

Druid数据库连接池的使用