查看原文
其他

Java教程-从Oracle数据库中检索图像的示例

点击关注👉 鸭哥聊Java 2023-08-31
整理:Java面试那些事儿

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

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

PreparedStatement的getBlob()方法的签名

public Blob getBlob()throws SQLException


专属福利

👉点击领取:651页Java面试题库


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

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

我们假设图像存储在imgtable中。
CREATE TABLE "IMGTABLE" ( "NAME" VARCHAR2(4000), "PHOTO" BLOB ) /
现在让我们编写代码从数据库中检索图像并将其写入目录中,以便可以显示。

在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图像文件。


最近技术热文

我就知道你会点赞+“在看”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存