Heim > Datenbank > MySQL-Tutorial > Hauptteil

往MySQL中存储图片_MySQL

WBOY
Freigeben: 2016-06-01 13:06:14
Original
1177 Leute haben es durchsucht

1.创建数据库:

CREATE TABLE    photo    (        id INT NOT NULL AUTO_INCREMENT,        name VARCHAR(100),        photo MediumBlob,        PRIMARY KEY (id)    )    ENGINE=InnoDB DEFAULT CHARSET=utf8;/*MySQL的四种BLOB类型类型 大小(单位:字节)TinyBlob 最大 255Blob 最大 65KMediumBlob 最大 16MLongBlob 最大 4G*/
Nach dem Login kopieren

2.新建包名com.sk.util,新建ImageUtil类,如下:

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;    /**     * 从本地文件读取图像的二进制流     *      * @param infile     * @return     */    public static FileInputStream getImageByte(String infile) {        FileInputStream imageByte = null;        file = new File(infile);        try {            imageByte = new FileInputStream(file);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        return imageByte;    }    /**     * 将图片流读出为图片     *      * @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 = inputStream.read(buffer)) != -1) {                fileOutputStream.write(buffer, 0, len);            }            inputStream.close();            fileOutputStream.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}
Nach dem Login kopieren

3.新建包名com.sk.handle,新建WriteImage类,如下:

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://工作//图片//5.jpg");		try {			String sql = "insert into photo(id,name,photo) values(?,?,?)";			preparedStatement = connection.prepareStatement(sql);			preparedStatement.setInt(1, 1);			preparedStatement.setString(2, "前言");			preparedStatement.setBinaryStream(3, inputStream,					inputStream.available());			preparedStatement.execute();		} 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();					}				}			}		}	}}
Nach dem Login kopieren

4.在新建ReadImage类,如下:

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();									}							}				}			}		}	}}
Nach dem Login kopieren

5.图片路径要修改。

 

爱生活,爱分享,爱康宝!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!