对java从数据库和服务器硬盘读出并写入的综合

本文详细介绍如何使用Java将图片文件存入MySQL数据库,并从数据库中读取图片数据展示在网页上。涉及步骤包括创建包含图片字段的数据库表、将图片文件写入数据库、从数据库检索图片并显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 create table imagetable
(
   nid                            int                            not null,
   image                          blob,
   primary key (nid)
)


//================ 一 、将文件写入到数据库的大字段中begin=====================
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/test?user=root&password=eastsoftweb";
Connection conn= DriverManager.getConnection(url);
java.io.File file = new File("d:/temp/1.jpg");
 FileInputStream is=new FileInputStream(file);
 PreparedStatement stmt = conn.prepareStatement(
          "INSERT INTO imagetable (nid,image)" +
"VALUES (?, ?)");  //预编译SQL语句
 stmt.setInt(1, 1);
 stmt.setBinaryStream(2, is,(int)file.length());
 stmt.executeUpdate();
 stmt.close();
 is.close();
 out.println("update end");
//===============将文件写入到数据库的大字段中end=========================
*/


/*
//====================== 二、jsp显示服务器硬盘图片示例 begin==============

FileInputStream is=new FileInputStream("d:/temp/1.JPG");
response.reset();
response.setContentType("image/jpeg");        
ServletOutputStream sos = response.getOutputStream();     
byte[] buffer = new byte[1024];
int len=0;
while((len=is.read(buffer))>0){
  sos.write(buffer,0,len);

  sos.flush();     
  sos.close();

//=======================jsp显示服务器硬盘图片示例 end===================
*/

//=====================  三、将数据库的大字段图片还原到本地,并在网页上显示begin==============
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/test?user=root&password=eastsoftweb";
Connection conn= DriverManager.getConnection(url);
java.io.File file = new File("d:/temp/db.jpg");
FileOutputStream os=new FileOutputStream(file);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stmt.executeQuery("select nid,image from imagetable where nid=1");
rs.next();
byte[] buffer=rs.getBytes(2);
stmt.close();
os.write(buffer);
os.flush();
os.close();
out.println("query end");

//网页上显示
response.reset();
response.setContentType("image/jpeg");        
ServletOutputStream sos = response.getOutputStream();     
sos.write(buffer);
sos.flush();     
sos.close();
//======================将数据库的大字段图片还原到本地,并在网页上显示end===

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值