从Oracle数据库中检索图像的示例

通过使用PreparedStatement,我们可以从数据库中检索和存储图像。

PreparedStatement的getBlob()方法用于获取二进制信息,它返回Blob的实例。在Blob对象上调用getBytes()方法后,我们可以获得二进制信息的数组,可以将其写入图像文件中。

PreparedStatement的getBlob()方法的签名

public Blob getBlob()throws SQLException 

Blob接口的getBytes()方法的签名

public byte[] getBytes(long pos, int length)throws SQLException 

我们假设图像存储在imgtable中。

1. CREATE TABLE "IMGTABLE"  
2.   (  "NAME" VARCHAR2(4000),  
3.   "PHOTO" BLOB 
4.   ) 
5. / 

现在让我们编写代码从数据库中检索图像并将其写入目录中,以便可以显示。

在AWT中,可以使用Toolkit类显示图像。在servlet、jsp或html中,可以使用img标签显示图像。

import java.sql.*; 
import java.io.*; 
public class RetrieveImage { 
    public static void main(String[] args) { 
        try{ 
            Class.forName("oracle.jdbc.driver.OracleDriver"); 
            Connection con=DriverManager.getConnection( 
                "jdbc:oracle:thin:@localhost:1521:xe","system","oracle"); 
               
            PreparedStatement ps=con.prepareStatement("select * from imgtable"); 
            ResultSet rs=ps.executeQuery(); 
            if(rs.next()){//now on 1st row 
                   
                Blob b=rs.getBlob(2);//2 means 2nd column data 
                byte barr[]=b.getBytes(1,(int)b.length());//1 means first image 
                   
                FileOutputStream fout=new FileOutputStream("d:\sonoo.jpg"); 
                fout.write(barr); 
                   
                fout.close(); 
            }//end of if 
            System.out.println("ok"); 
               
            con.close(); 
        }catch (Exception e) {e.printStackTrace(); } 
    } 
}

现在,如果您查看D驱动器,将创建sonoo.jpg图像文件。

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想