当前位置: 首页 > 面试题库 >

尝试在数据库中加载Blob时为什么会出现java.lang.AbstractMethodError?

年凯康
2023-03-14
问题内容

JDBC有问题。

我有以下代码:

//blargeparam is a blob column.
PreparedStatement pst =connection.prepareStatement("update gcp_processparams_log set blargeparam= ? where idprocessparamslog=1");

pst.setBinaryStream(1,inputStream);     

我收到以下错误:

Exception in thread "main" java.lang.AbstractMethodError:           
oracle.jdbc.driver.T2CPreparedStatement.setBinaryStream(ILjava/io/InputStream;)V  

我的连接字符串是 jdbc:oracle:oci:@.....

Oracle版本为11g。

从错误消息看来,似乎缺少了一些东西,但是:

  • 当我从同一个blob列(带有blob.getBytes)读取时,一切正常。
  • 即时客户端的DLL位于库路径中(正确)。
  • 这是我的类路径中Oracle JDBC JAR的清单:
Manifest-Version: 1.0  
Specification-Title:    Oracle JDBC driver classes for use with JDK14  
Sealed: true  
Created-By: 1.4.2_14 (Sun Microsystems Inc.)  
Implementation-Title:   ojdbc14.jar  
Specification-Vendor:   Oracle Corporation  
Specification-Version:  Oracle JDBC Driver version - "10.2.0.4.0"  
Implementation-Version: Oracle JDBC Driver version - "10.2.0.4.0"  
Implementation-Vendor:  Oracle Corporation  
Implementation-Time:    Sat Feb  2 11:40:29 2008  

问题答案:

看起来即使驱动程序10.2与JDBC3兼容,它也可能无法与JRE6一起使用,正如我在这里找到的那​​样:

http://www.oracle.com/technology/tech/java/sqlj_jdbc/htdocs/jdbc_faq.html#02_03

哪些JDBC驱动程序支持Javasoft的JDK的哪个版本?

8i之前的OCI和THIN驱动程序 -JDK 1.0.x和JDK 1.1.x
8.1.5 OCI和THIN驱动程序
-JDK 1.0.x和JDK 1.1.x 8.1.6 SDK THIN驱动程序-JDK 1.1.x和JDK 1.2.x( aka Java2)
8.1.6SDK OCI驱动程序-仅JDK 1.1.x
8.1.6 OCI和THIN驱动程序-JDK 1.1.x和JDK 1.2.x
8.1.7 OCI和THIN驱动程序-JDK 1.1.x和JDK 1.2.x
9.0。 1 OCI和THIN驱动程序-JDK 1.1.x,JDK 1.2.x和JDK 1.3.x
9.2.0 OCI和THIN驱动程序-JDK 1.1.x,JDK 1.2.x,JDK 1.3.x和JDK 1.4.x
10.1。 0 OCI和THIN驱动程序-JDK 1.2.x,JDK 1.3.x和JDK 1.4.x
10.2.0 OCI和THIN驱动程序-JDK 1.2.x,JDK 1.3.x,JDK 1.4.x和JDK 5.0.x
11.1 .0 OCI和THIN驱动程序-JDK 1.5.x和JDK 1.6.x


Oracle 10.2.0支持:

完全支持JDBC 3.0
请注意,数据库中对以下各项的支持没有真正的变化。改变的是,以前抛出SQLException的某些方法现在执行更合理的操作。
结果集可保存性
返回多个结果集。



 类似资料:
  • 我已经调整了控制器构造函数和fxml,所以除了fxml构造和fxml加载之外,控制器的所有fxml设置都在fxml中。这里是我的控制器:

  • 问题内容: 我已经调整了控制器的构造函数和fxml,以便将控制器的fxml的所有设置都放在fxml中,除了FXML的构造和fxml的加载。这是我的控制器: 和我的fxml文件: 当调用fxmlLoader.load()并返回FXMLLoader时会发生stackoverflow fxmlLoader = new FXMLLoader(…),然后再次调用fxmlLoader.load()…为什么会发

  • 问题内容: 这是我的代码: 当我执行此操作时,将引发错误: 我确保它不是拼写错误,并且我没有拼错该函数的名称,所以为什么会出现NameError? 问题答案: 除非已定义函数,否则无法调用它。将块移动到文件的顶部,在导入的下面。 某些语言允许您在定义函数之前使用函数。例如,javascript将其称为“吊装”。但是Python并不是这些语言之一。 请注意,只要按 时间顺序 在使用前定义,就可以在比

  • "mediaPlayer=MediaPlayer.create(上下文, R.raw.coast"行抛出以下异常: Java语言lang.NullPointerException:尝试调用虚拟方法“android”。所容纳之物资源android。所容纳之物上下文在空对象引用上的getResources() 我已经将这段代码从一个独立的应用程序中转移到另一个应用程序的这个类中。现在它不起作用了,我不

  • 我有一个简单的Hello World示例,它将Map传递给Camel,并通过Log4J将值显示到控制台。我想通过将Jackson库添加到我的Camel应用程序Context.xml来扩展这个示例,以JSON格式呈现这个映射 首先,我尝试将以下XML标记添加到我的applicationContext.xml中(如http://camel.apache.org/json.html大学“在Spring

  • 问题内容: 我正在用Django开发应用程序。 我想将数据加载到模型中,即,但数据存储在xlsx文件中,即。 为了实现这一目标,我开发了以下脚本: 但是当我从Anaconda提示符下运行它时,我得到了 文件“ load_glossary.py”,模块7中的第7行, 引发AppRegistryNotReady(“应用尚未加载。”)django.core.exceptions.AppRegistryN