阿里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;
    }
}
相关文章
|
运维 监控 网络安全
全能型终端工具MobaXtermv23.0专业版
全能型终端工具MobaXtermv23.0专业版
878 0
|
JSON 小程序 Java
微信公众平台测试号——模板消息发送Demo
微信公众平台测试号——模板消息发送Demo
2396 0
|
druid Java 数据库连接
数据库连接池及Druid使用步骤
数据库连接池及Druid使用步骤
1990 2
|
7月前
|
安全 Java API
一文吃透:若依框架静态资源防盗链从原理到代码
若依(RuoYi)框架的防盗链功能实现方式,我会从核心原理、代码实现、配置方式、关键细节四个维度拆解,兼顾原理理解和实操落地,适配若依单体版(RuoYi-Vue)和微服务版(RuoYi-Cloud)的通用逻辑
417 3
|
存储 关系型数据库 MySQL
MySQL触发器实战:自动执行的秘密
MySQL触发器实战:自动执行的秘密
598 3
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
2188 84
|
存储 安全 Linux
Podman入门全指南:安装、配置与运行容器
Podman入门全指南:安装、配置与运行容器
11948 1
|
自然语言处理 搜索推荐 小程序
博物馆导览系统:提升观众参观效率与满意度
在这个快节奏时代,博物馆面临挑战与机遇。传统导览方式难以满足个性化、互动性和沉浸式学习需求。本文深入解析博物馆智能导览系统,包括精准定位导航、展品解说和AR技术应用,提升观众参观效率与满意度。
1092 5
|
存储 SQL 关系型数据库
在 MySQL 中使用 `RTRIM` 函数
【8月更文挑战第8天】
842 8
在 MySQL 中使用 `RTRIM` 函数