欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql存取图片_MySQL

程序员文章站 2022-06-15 08:51:10
...
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    |       | +--------+-------------+------+-----+---------+-------+ */