繁体   English   中英

如何使用 JDBC 从 Oracle 数据库中检索图像?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM