mysql存取圖片

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    |       |
 +--------+-------------+------+-----+---------+-------+

 */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章