使用Spring的jdbcTemplate读取数据库中BLOB字段并存储在本地并在页面显示

1人阅读 评论(0) 收藏 举报
分类:

首先你已经搭建了Spring,我可以对数据库进行操作

code:

public    Map<String, Object> getUser(String id)   {
			String sql="select  * from  tUser   where  id="+id;
			Map<String, Object> map=jdbcTemplate.query(sql, new ResultSetExtractor() {

			@Override
			public Object extractData(ResultSet rs) throws SQLException,
					DataAccessException {
				// TODO Auto-generated method stub
				Map<String, Object> map=new HashMap<String, Object>();
				while (rs.next()) {  
					Blob blob=  rs.getBlob("TX");
					String xm=rs.getString("XM");
				        String qq=rs.getString("QQ");
                                        String dz=rs.getString("DZ");
					map.put("xm", xm);
					map.put("qq", qq);
					map.put("dz", dz); 
					InputStream ins = blob.getBinaryStream();
				        //定义文件的输出目录
				        File file=new File("D:/abc/""+xm+.png");  
				        OutputStream fout;
					try {
						fout = new FileOutputStream(file);
				                 //下面将BLOB数据写入文件
				                 byte[] b = new byte[1024];
				                 int len = 0;
				                 while ( (len = ins.read(b)) != -1) {
				                   fout.write(b, 0, len);
				                   }  
				      
				                  //依次关闭
						   fout.close();
						   ins.close();
					} catch ( Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
				}
				
				return map;
			}
		});
		    
		   
			return   map;
			
		
		}

上面的代码从数据库读取了一个用户的信息,并将头像Blob字段的内容取出并保存在本地 。

接着讲保存在本地的图片显示在Jsp页面上 。

我使用的是springmvc,所以在controller上写如下代码:

@RequestMapping("/showtx")
	public void showtx(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
	    String xm=request.getParameter("xm");
	    FileInputStream inputStream ;
	    File f =new File("D:/abc/""+xm+.png"); 
          inputStream= new FileInputStream(f); 
          int i = inputStream.available();  
         //byte数组用于存放图片字节数据  
           byte[] buff = new byte[i];      inputStream.read(buff);      //记得关闭输入流     inputStream.close();      //设置发送到客户端的响应内容类型      response.setContentType("image/*");      OutputStream out = response.getOutputStream();      out.write(buff);      //关闭响应输出流      out.close();      }

在页面上写个图片框

<img src="<%=basePath %>showtx?xm=${user.xm}" height="150px" width="120px">
至此,访问页面之后,img会去请求showtx来获取图片。




查看评论

jdbcTemplate获取mysql的blob

java使用jdbcTemplate操作mysql数据库,遇到blob字段,正常读取出来是blob的地址,而不是blob的内容。 下面采用2中方式读取blob的内容: 1、以二进制数组形式读取blob...
  • c295477887
  • c295477887
  • 2016-09-29 10:24:56
  • 1814

利用spring的jdbcTemplate处理blob、clob

  • 2010年08月03日 23:05
  • 20KB
  • 下载

jdbcTemplate存取blob(图片)

public class ImageDao extends JdbcDaoSupport { private JdbcTemplate jdbcTemplate; public void addI...
  • zdy19900811
  • zdy19900811
  • 2014-05-15 22:26:18
  • 560

使用Spring JdbcTemplate实现CLOB和BLOB的存取

所谓CLOB 可以看成是文本文,所谓BLOB可以看成是图片文件假设在mysql数据库上有以下表:create table test(id int primary key,txt TEXT,image ...
  • daryl715
  • daryl715
  • 2007-10-15 15:34:00
  • 6504

Spring jdbcTemplate操作Blob大字段

当Spring遇到了Oracle,该怎么办 这次项目,我可以被oralce气伤了。oracle 9i怎么会有那么多问题,驱动怎么会有那么多问题。  好了,说问题吧。  这...
  • hhhh2012
  • hhhh2012
  • 2012-06-26 12:12:25
  • 9923

从Oracle中数据库中读取以Blob类型存储的图片显示在jsp页面中

在之前的项目中做文件上传的时候比较多。实现文件上传,我们有两种实现思路:第一就是将文件上传到服务器的某一位置,然后在数据库中存储文件的服务器上的位置。第二就是直接把文件存储到数据库中。   图片也是文...
  • wangyajin333
  • wangyajin333
  • 2015-10-31 19:48:35
  • 3447

从数据库中读取Blob对象图片并显示

大致方法就是,从数据库中读出Blob的流来,把流写到页面中去:package com.XXXXXX.file;import java.io.IOException;import java.io.Inp...
  • RayChase
  • RayChase
  • 2008-03-27 15:04:00
  • 2255

Spring 数据库处理Clob/Blob大对象

概述使用Spring的时候需求上难免说需要存储一下几种类型: 文本 图片 二进制 处理对象Spring 支持通过LobCreator/LobHandler进行处理大对象 BLOB byte[] — ...
  • u010475041
  • u010475041
  • 2016-09-10 17:23:24
  • 1724

利用spring的jdbcTemplate处理blob、clob

spring定义了一个以统一的方式操作各种数据库的Lob类型数据的LobCreator(保存的时候用),同时提供了一个LobHandler为操作二进制字段和大文本字段提供统一接口访问。 举例,例子里面...
  • WarcraftJimmy
  • WarcraftJimmy
  • 2011-04-08 13:46:00
  • 10213

JSP读取Oracle数据库里的图片Blob字段并显示在页面上

The original website:http://longdick.iteye.com/blog/315279   /** *  转载请注明作者longdick    http://lo...
  • jason_deng
  • jason_deng
  • 2011-12-16 15:56:46
  • 6892
    个人资料
    持之以恒
    等级:
    访问量: 672
    积分: 115
    排名: 119万+
    文章分类
    文章存档