执行以下程序会给我错误,
Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.OraclePreparedStatement.setBlob(ILjava/io/InputStream;)V
at ImageStore.main(ImageStore.java:28)
我正在使用ojdbc14.jar,我的Oracle版本是9.0.1.1.1
public class ImageStore {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager
.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
"usrname", "password");
String sql="update items set image=? where id=1";
//String sql="select * from price";
PreparedStatement ps=con.prepareStatement(sql);
File f=new File("E:/Images/s.jpg");
InputStream fos= new FileInputStream(f);
ps.setBlob(1, fos);
ps.execute();
/*while(rs.next())
System.out.println(rs.getInt(1));
*/
ps.close();
con.close();
}
}
请帮忙
答案 0 :(得分:1)
我还必须在数据库中插入图像,它的工作方式如下
将图像转换为字节数组
使用setBinaryStream,其中data是Byte
的数组preparedStatement.setBinaryStream(1,new ByteArrayInputStream(data),data.length);
编辑:此技术的缺点是数组的整数限制大小
答案 1 :(得分:0)
AbstractMethodError
表示您没有使用正确的驱动程序。如果您使用的是java5或更高版本,请尝试下载相应的ojdbc驱动程序(ojdbc14.jar适用于java1.4)
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-111060-084321.html