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

问题描述 投票:1回答:1

这个问题已经在这里有了答案:

我编写了一个代码,该代码将帮助用户使用JDBC将映像保存在oracle数据库中。

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

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

java.lang.AbstractMethodError:方法oracle / jdbc / driver / T4CPreparedStatement.setBlob(ILjava / io / InputStream;)V是抽象的

这是怎么引起的,我该如何解决?

java oracle jdbc abstract-methods
1个回答
-1
投票

尝试先将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();
© www.soinside.com 2019 - 2024. All rights reserved.