gpt4 book ai didi

java - 上传照片并将其保存到Oracle数据库10g中

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

我编写了一段代码,可以帮助用户使用 JDBC 将图像保存到 oracle 数据库中。

PreparedStatement ps =con.prepareStatement("insert into employee values(?,?)");
ps.setString(1,name);
ps.setBlob(2,inputStream);

但是当我尝试运行代码时,出现错误

java.lang.AbstractMethodError: Method oracle/jdbc/driver/T4CPreparedStatement.setBlob(ILjava/io/InputStream;)V is abstract

这是怎么造成的,如何解决?

最佳答案

首先尝试将 inputStream 转换为 byte[] 并将其作为参数传递给 steBlob 方法

例如:

BufferedInputStream bis= new BufferedInputStream(inputStream); /// pass your inputStream here
int size=0;
byte[] bytes;
Blob blob = con.createBlob(); // create blob using connection obj
int length = 1;
int readCount=0;
System.out.println(img.getCanonicalPath());
do {
bytes = new byte[bis.available()];
readCount = bis.read(bytes);
blob.setBytes(length, bytes); ///populate chunks of data to the blob
length=length+readCount;

size= bis.available();
//System.out.println(bis.read());
}while ( size > 0 );
PreparedStatement st = con.prepareStatement("INSERT INTO TABLE VALUES (?,?)");
st.setString(1, id);
st.setBlob(2, blob);
st.execute();

关于java - 上传照片并将其保存到Oracle数据库10g中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42106544/

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