今天正好遇到这样的问题,总结一下,以备后用。
参考文章: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();
}
}
}