gpt4 book ai didi

java - 创建 Blob 时出现运行时异常

转载 作者:行者123 更新时间:2023-12-01 11:11:06 25 4
gpt4 key购买 nike

尝试使用 BLOB.createTemporary(connection, false, BLOB.DURATION_SESSION) 创建 BLOB 对象,但出现 Class Cast Exception

java.lang.ClassCastException: org.apache.commons.dbcp.cpdsadapter.ConnectionImpl cannot be cast to oracle.jdbc.OracleConnection.

我尝试了以下建议,但仍然出现同样的错误。 Apache Commons DBCP connection object problem, Thread: ClassCastException in org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper

有人建议我解决这个问题。

最佳答案

Oracle BLOB.createTemporary() 方法期望 Connection 参数是 oracle.jdbc.OracleConnection 对象,但来自 Tomcat 的连接由 DBCP 管理,因此连接 包装在 DBCP 类 (org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper) 中。

您要么需要解开它以获取真正的 Oracle 连接对象,要么停止使用 Oracle BLOB

只需使用 JDBC 方法:Blob blob = connection.createBlob()

更新

JDBC Blob 是一个接口(interface)。 JDK 中没有实现类,因此您始终会获得 DBMS 特定的实现。如果需要,您可以转换为OracleBlob,它也是一个接口(interface),提供其他特定于 Oracle 的方法。

<小时/>

有趣的 javadoc OracleBlob :

Generally any new code should avoid the direct use of the class BLOB. For variable declarations use the interface Blob or this interface as required. Instead of the static methods BLOB.createTemporary(java.sql.Connection, boolean, int) and BLOB.empty_lob() please use Connection.createBlob() and BLOB.getEmptyBLOB() respectively.

关于java - 创建 Blob 时出现运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com