Store images in MySQL 1. create a database:
Create table photo (id int not null AUTO_INCREMENT, name VARCHAR (100), photo MediumBlob, primary key (id) ENGINE = InnoDB default charset = utf8; /* MySQL four BLOB types (unit: Byte) TinyBlob Max. 255 Blob Max 65 KMediumBlob max 16 MLongBlob Max 4G */
2. create the package name com. sk. util and the ImageUtil class as follows:
Package com. sk. util; import java. io. file; import java. io. fileInputStream; import java. io. fileNotFoundException; import java. io. fileOutputStream; import java. io. IOException; import java. io. inputStream; public class ImageUtil {private static File file = null; /*** READ the binary stream of the image from the local file ** @ param infile * @ return */public static FileInputStream getImageByte (String infile) {FileInputStream imageByte = null; fil E = new File (infile); try {imageByte = new FileInputStream (file);} catch (FileNotFoundException e) {e. printStackTrace ();} return imageByte;}/*** read the image stream as an image ** @ param inputStream * @ param path */public static void readBlob (InputStream inputStream, string path) {try {FileOutputStream fileOutputStream = new FileOutputStream (path); byte [] buffer = new byte [1024]; int len = 0; while (len = I NputStream. read (buffer ))! =-1) {fileOutputStream. write (buffer, 0, len);} inputStream. close (); fileOutputStream. close ();} catch (FileNotFoundException e) {e. printStackTrace ();} catch (IOException e) {e. printStackTrace ();}}}
3. create the package name com. sk. handle and the WriteImage class as follows:
Package com. sk. handle; import java. io. IOException; import java. io. inputStream; import java. SQL. connection; import java. SQL. driverManager; import java. SQL. preparedStatement; import java. SQL. SQLException; import com. sk. util. imageUtil; public class WriteImage {public static void main (String [] args) {try {Class. forName ("com. mysql. jdbc. driver "). newInstance ();} catch (InstantiationException e) {e. printStackTrace ();} Catch (IllegalAccessException e) {e. printStackTrace ();} catch (ClassNotFoundException e) {e. printStackTrace ();} String user = "root"; String password = "root"; String url = "jdbc: mysql: // localhost: 3306/oa? CharacterEncoding = utf-8 "; Connection connection = null; try {connection = DriverManager. getConnection (url, user, password);} catch (SQLException e) {e. printStackTrace ();} PreparedStatement preparedStatement = null; InputStream inputStream = null; inputStream = ImageUtil. getImageByte ("D: // work // Picture // 5.jpg"); try {String SQL =" insert into photo (id, name, photo) values (?,?,?) "; PreparedStatement = connection. prepareStatement (SQL); preparedStatement. setInt (1, 1); preparedStatement. setString (2, "Preface"); preparedStatement. setBinaryStream (3, inputstream,inputstream.available(registry.preparedstatement.exe cute ();} catch (SQLException e) {e. printStackTrace ();} catch (IOException e) {e. printStackTrace ();} finally {try {if (inputStream! = Null) inputStream. close ();} catch (IOException e) {e. printStackTrace ();} finally {try {if (preparedStatement! = Null) preparedStatement. close ();} catch (SQLException e) {e. printStackTrace ();} finally {try {connection. close ();} catch (SQLException e) {e. printStackTrace ();}}}}}}
4. create the ReadImage class as follows:
package com.sk.handle;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.sk.util.ImageUtil;public class ReadImage {public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver").newInstance();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}String user = "root";String password = "root";String url = "jdbc:mysql://localhost:3306/oa?characterEncoding=utf-8";Connection connection = null;try {connection = DriverManager.getConnection(url, user, password);} catch (SQLException e) {e.printStackTrace();}Statement statement = null;ResultSet resultSet = null;InputStream inputStream = null;try {statement = connection.createStatement();String sql = "select p.photo from photo p where id = 1";resultSet = statement.executeQuery(sql);resultSet.next();inputStream = resultSet.getBinaryStream("photo");ImageUtil.readBlob(inputStream, "D://1.png");} catch (SQLException e) {e.printStackTrace();} finally {try {if (inputStream != null)inputStream.close();} catch (IOException e) {e.printStackTrace();} finally {try {if (resultSet != null)resultSet.close();} catch (SQLException e) {e.printStackTrace();} finally {if (statement != null)if (statement != null)try {statement.close();} catch (SQLException e) {e.printStackTrace();} finally {if (connection != null)try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}}}}}
5. modify the image path.
Love life, love sharing, love Kang Bao!