一尘不染

java.lang.AbstractMethodError:oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava/ io / Reader; J)V

hibernate

尝试将CKEditor的内容(用于CMS-Contents Management System)插入Oracle数据库 Oracle 10g
时,出现以下异常。

Oracle表中的字段的类型为clob。

java.lang.AbstractMethodError:oracle.jdbc.driver.T4CPreparedStatement.setCharacterStream(ILjava
/ io / Reader; J)V

相反,当我尝试使用JSON通过AJAX将相同的内容插入数据库时​​,不会导致此异常。

我在用着

  • Spring3.2.0
  • Hibernate4.2.0.CR1
  • Oracle JDBC驱动程序版本-10.2.0.5.0
  • JDK-1.7
  • Oracle10g

自从我将Hibernate从3.2.5更改为4.2.0.CR1以来,一直引起异常。

这个连结说

setCharacterStream()方法有3个版本,其中两个版本是JDBC 4.0(Java 1.6)的一部分。您的JDBC驱动程序可能不支持它们:

该答案建议升级JDBC驱动程序,但该问题与我尚未使用的Oracle
11g有关。

我不太确定 JDBC 11.x驱动程序是否与Oracle 10g兼容?曾几何时,我曾尝试过一个,但无法正常工作。

如何解决这个异常?


编辑:

我刚刚下载了
ojdbc6.jar(以前是ojdbc14.jar使用上面指定的驱动程序下载的),其中包含Oracle JDBC Driver version - "11.1.0.7.0-Production"

异常异常消失了。请告诉我,该驱动程序版本是否与 Oracle 10g 完全兼容。


阅读 787

收藏
2020-06-20

共1个答案

一尘不染

我不太确定 JDBC 11.x驱动程序是否与Oracle 10g兼容?曾几何时,我曾尝试过一个,但无法正常工作。

如Oracle
JDBC驱动程序11g文档中所述(http://docs.oracle.com/cd/E11882_01/java.112/e16548/getsta.htm

向后兼容

JDBC驱动程序经过认证可与当前支持的Oracle数据库版本一起使用。例如,Oracle数据库11g第2版(11.2)中的JDBC
Thin驱动程序已通过认证,可与10.2.x,10.1.x,9.2.x和9.0.1.x
Oracle数据库版本一起使用。但是,它们没有经过认证可与较旧的不受支持的数据库版本一起使用,例如8.0.x和7.x。

2020-06-20