最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

往MySQL中存储图片_MySQL

来源:动视网 责编:小采 时间:2020-11-09 19:35:45
文档

往MySQL中存储图片_MySQL

往MySQL中存储图片_MySQL: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类型类型 大小(单位:
推荐度:
导读往MySQL中存储图片_MySQL: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类型类型 大小(单位:


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*/

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(); } }}

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();	}	}	}	}	}}

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();	}	}	}	}	}	}}

5.图片路径要修改。

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

文档

往MySQL中存储图片_MySQL

往MySQL中存储图片_MySQL: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类型类型 大小(单位:
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top