阿里Druid连接池的坑。。

简介: Druid的坑当查询数据库的Clob转换为Oracle Clob类型的时候。

Druid的坑

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

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字段内容即可。

public class ClobUtil {
    public static CLOB parseOracleClob(Clob clob) {
        SerializableClob sclob = (SerializableClob) clob;
        Clob wrappedClob = sclob.getWrappedClob();
        // 解决Druid的坑
        if (wrappedClob instanceof ClobProxy) {
            ClobProxy clobProxy = (ClobProxy) wrappedClob;
            wrappedClob = clobProxy.getRawClob();
        }
        return (CLOB) wrappedClob;
    }
}
相关文章
|
druid Java 数据库连接
数据库连接池及Druid使用步骤
数据库连接池及Druid使用步骤
1618 2
|
SQL API 数据库
Seata AT模式问题之抛出异常触发回滚如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题
961 104
|
druid 数据库
数据库连接池——Druid
数据库连接池——Druid 一、好处 更方便地获取连接对象,效率高 资源可以更好的重复利用
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
1213 84
|
监控 druid Java
干掉Druid?揭秘HikariCP为何如此迅猛
【8月更文挑战第18天】在Java应用开发中,数据库连接池作为提升数据库访问性能的关键组件,其重要性不言而喻。长期以来,Druid以其强大的监控、扩展性和稳定性,在业界赢得了广泛的认可与应用。然而,近年来,一个名为HikariCP的轻量级连接池逐渐崭露头角,以其惊人的速度和低资源消耗,挑战着Druid的霸主地位。今天,我们就来深入探讨,HikariCP为何能够如此迅速地“干掉”传统连接池,成为新的性能标杆。
609 4
|
监控
探索ERP系统的实施流程与方法论
探索ERP系统的实施流程与方法论
1814 2
|
SQL 存储 关系型数据库
Hive 和 HDFS、MySQL 之间的关系
Hive是Hadoop上的数据仓库工具,用HiveQL进行大数据查询;HDFS是分布式文件系统,用于存储大规模数据,常与Hive结合,提供数据存储和高可靠性。MySQL是RDBMS,适用于结构化数据管理,在大数据环境里可存储Hive的元数据,提升查询效率和元数据管理。三者协同处理数据管理和分析任务。
820 0
|
XML 监控 druid
SpringBoot整合Druid数据源并配置监控
SpringBoot整合Druid数据源并配置监控
1697 1
|
SQL 监控 druid
Druid连接池
Druid连接池
699 0
|
算法 安全 Java
详解RSA加密算法 | Java模拟实现RSA算法
详解RSA加密算法 | Java模拟实现RSA算法
487 1

热门文章

最新文章