Java 连接 MySQL读取 Blob 生成图片

        今天正好遇到这样的问题,总结一下,以备后用。

       参考文章:http://www.cnblogs.com/GarfieldEr007/p/5746137.html

                           http://blog.csdn.net/yujin753/article/details/25958151

       如有侵权,请告之,马上删除。

   工程目录

    包括 DBHelper.java 和ReadDemo.java还有 jar文件

         DBHelper.java

    

package com.neusoft.readmysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class DBHelper {
	 public static final String url = "jdbc:mysql://127.0.0.1/test";  
	    public static final String name = "com.mysql.jdbc.Driver";  
	    public static final String user = "root";  
	    public static final String password = "root"; 
	    
	    public Connection conn = null;  
	    public PreparedStatement pst = null;  
	    public DBHelper(String sql) {  
	    	 try {  
	             Class.forName(name);//指定连接类型  
	             conn = DriverManager.getConnection(url, user, password);//获取连接  
	             pst = conn.prepareStatement(sql);//准备执行语句  
	         } catch (Exception e) {  
	             e.printStackTrace();  
	         }  
	    }
	    public void close() {  
	        try {  
	            this.conn.close();  
	            this.pst.close();  
	        } catch (SQLException e) {  
	            e.printStackTrace();  
	        }  
	    }  
}

      ReadDemo.java

       

package com.neusoft.readmysql;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ReadDemo {
	
	static String sql = null;  
    static DBHelper db1 = null;  
    static ResultSet ret = null; 
    
	/** 
	 * @Title: main 
	 * @Description: TODO
	 * @param args
	 * @return: void
	 */
	public static void main(String[] args) {
		ReadBlod2Pictures();
	}
	
	private void Test()
	{
		sql = "SELECT m.id,m.`name`,m.preview,m.`view` from itam_3d_display_model m";//SQL语句  
		 db1 = new DBHelper(sql);//创建DBHelper对象  
		 try {  
	            ret = db1.pst.executeQuery();//执行语句,得到结果集  
	            while (ret.next()) {  
	                String uid = ret.getString(1);  
	                String ufname = ret.getString(2);  
	                String ulname = ret.getString(3);  
	                String udate = ret.getString(4);  
	                System.out.println(uid + "\t" + ufname + "\t");  
	                //System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );  
	            }//显示数据  
	            ret.close();  
	            db1.close();//关闭连接  
	        } catch (SQLException e) {  
	            e.printStackTrace();  
	        }
	}
	
	private static void ReadBlod2Pictures()
	{
		//读取图片出来,保存到本地的磁盘上面  
	       sql = "SELECT m.id,m.`name`,m.preview,m.`view` from itam_3d_display_model m where m.`view` !=''";   
	       db1 = new DBHelper(sql);//创建DBHelper对象  
	       try{
	    	   ret = db1.pst.executeQuery();//执行语句,得到结果集  
	    	   while (ret.next()) {  
	    		   Blob blob = ret.getBlob("view");
	    		   String s1="E:\\imagett\\"+ret.getString(2)+".png";  
	               File file2 = new File(s1); 
	               OutputStream outputStream = new FileOutputStream(file2);     
	               outputStream.write(blob.getBytes(1,(int)blob.length()));    
	                 //打印出来的为对象     
	               System.out.println("图片名称 :"+ret.getString(2)+",图片内容: "+ blob.getBinaryStream()); 
	    	   }
	       }catch(SQLException e){
	    	   e.printStackTrace();
	       } catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	       
	          
	           
	}
	
}

     


     

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhchyun2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值