Store image_mysql in MySQL

Source: Internet
Author: User
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!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.