package com.mycompany.mysql.image;
import java.io.*;
import java.sql.*;
public class Main {
public static void main(String[] args) {
Main m = new Main();
// m.storeImage();
m.getImage();
}
private static String URL = "jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8";
private static String USERNAME = "root";
private static String PASSSWORD = "wjb1234";
public void getImage() {
Connection con = getConnection();
Statement st = null;
ResultSet rs = null;
InputStream in = null;
OutputStream out = null;
try {
st = con.createStatement();
rs = st.executeQuery("select image from image where id=1");
rs.next(); //將光標指向第一行
//從rs中讀取stupic放進InputStream對象中
in = rs.getBinaryStream("image");
//申明byte數組,用來存放圖片流
byte[] b = new byte[40000];
in.read(b); //從InputStream對象中讀取數據放進byte數組中
//實例化OutputStream對象,在D盤創建一個圖片文件
out = new FileOutputStream("/home/zcwangjb/document/xml2.gif");
//將文件輸出,內容則爲byte數組裏面的數據
out.write(b);
out.flush();
} catch (SQLException e) {
} catch (IOException e) {
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
//關閉相關連接
rs.close();
st.close();
con.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
public void storeImage() {
//連接MySQl數據庫
Connection con = getConnection();
PreparedStatement ps = null;
InputStream in = null;
try {
//從本地硬盤讀取一張讀片
in = new FileInputStream("/home/zcwangjb/document/xml.gif");
System.out.println(in.available());
ps = con.prepareStatement("insert into image values(?,?,?)");
ps.setInt(1, 1);
ps.setString(2, "Tom");
ps.setBinaryStream(3, in, in.available());
ps.executeUpdate();
} catch (IOException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
//關閉流
if (in != null) {
in.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
//關閉相關連接
ps.close();
con.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
private static Connection getConnection() {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(URL, USERNAME, PASSSWORD);
} catch (SQLException ex) {
//logger.error("database connection error ." + ex.getMessage());
} catch (ClassNotFoundException ex) {
//logger.error("mysql jdbc driver cannot find ." + ex.getMessage());
}
return con;
}
}
/*
---------------表結構------------
表名:image
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| image | blob | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
*/
mysql存取圖片
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.