[英]How to retrieve image from Oracle Database using JDBC?
我正在使用 JDBC 连接到 oracle 数据库。 我知道如何检索各种数据(字符串、整数等),但我不知道如何从此数据库中获取 ORDImage。 是否有任何 ResultSet 方法来完成此操作?
PreparedStatement 的 getBlob() 用于获取 Binary 信息,它返回 Blob 的实例。 通过对 blob 对象调用 getBytes() 方法,您将获得可写入图像文件的二进制信息数组。
这是代码..
PreparedStatement ps = con.prepareStatement("select * from MyImageTable");
ResultSet rs = ps.executeQuery();
if(rs.next()){
Blob blob = rs.getBlob(2); //Here 2 is second column data
byte b[] = blob.getBytes(1,(int)b.length()); //Here 1 represent first image
FileOutputStream output = new FileOutputStream("e:\\some_pic.jpg"); //path goes here
output.write(b);
output.close();
查看 oracle jdbc 开发人员指南的流 lob部分。 有几种方法可以访问数据。 不同的选项有不同的内存/性能影响。 最简单的解决方案可能是ResultSet.getBinaryStream 。 但是,如果您需要有关数据长度的信息,也可以使用getBlob 。
java库中从数据库中检索图像的显示方式有很多种,这一种是从数据库中检索图像到java swing格式的最佳方式,可以根据您需要的大小在JLable中显示。
ResultSet rs = stmnt.executeQuery("select * from table1 ");
Blob blob= rs.getBlob("image");
byte bt[]= blob.getBytes(1,(int)blob.length());
Image img= ImageIO.read(new ByteArrayInputStream(bt));
Image img1= img.getScaledInstance(200,230,Image.SCALE_SMOOTH);
ImageIcon icon= new ImageIcon(img1);
JLable1.setIcon(icon);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.