将图片添加到mysql中的方法
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下将图片添加到mysql中的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型
千家信息网最后更新 2025年11月07日将图片添加到mysql中的方法
小编给大家分享一下将图片添加到mysql中的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型;然后将图片流转化为二进制;最后将图片插入数据库即可。
正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进mysql数据库
如果要图片存进数据库 要将图片转化成二进制。
1.数据库存储图片的字段类型要为blob二进制大对象类型
2.将图片流转化为二进制
下面放上代码实例
一、数据库
CREATE TABLE `photo` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `photo` blob, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
二、数据库链接
/** * */package JdbcImgTest;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/** * @author Administrator * */public class DBUtil{ // 定义数据库连接参数 public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver"; public static final String URL = "jdbc:mysql://localhost:3306/test"; public static final String USERNAME = "root"; public static final String PASSWORD = "root"; // 注册数据库驱动 static { try { Class.forName(DRIVER_CLASS_NAME); } catch (ClassNotFoundException e) { System.out.println("注册失败!"); e.printStackTrace(); } } // 获取连接 public static Connection getConn() throws SQLException { return DriverManager.getConnection(URL, USERNAME, PASSWORD); } // 关闭连接 public static void closeConn(Connection conn) { if (null != conn) { try { conn.close(); } catch (SQLException e) { System.out.println("关闭连接失败!"); e.printStackTrace(); } } } //测试/* public static void main(String[] args) throws SQLException { System.out.println(DBUtil.getConn()); } */}三、图片流
package JdbcImgTest;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;/** * @author Administrator * */public class ImageUtil{ // 读取本地图片获取输入流 public static FileInputStream readImage(String path) throws IOException { return new FileInputStream(new File(path)); } // 读取表中图片获取输出流 public static void readBin2Image(InputStream in, String targetPath) { File file = new File(targetPath); String path = targetPath.substring(0, targetPath.lastIndexOf("/")); if (!file.exists()) { new File(path).mkdir(); } FileOutputStream fos = null; try { fos = new FileOutputStream(file); int len = 0; byte[] buf = new byte[1024]; while ((len = in.read(buf)) != -1) { fos.write(buf, 0, len); } fos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { if (null != fos) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } }}四、转码存储
package JdbcImgTest;import java.io.FileInputStream;import java.io.InputStream;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/** * @author Administrator 测试写入数据库以及从数据库中读取 */public class ImageDemo{ // 将图片插入数据库 public static void readImage2DB() { String path = "D:/Eclipse/eclipseWorkspace/TestProject/Img/mogen.jpg"; Connection conn = null; PreparedStatement ps = null; FileInputStream in = null; try { in = ImageUtil.readImage(path); conn = DBUtil.getConn(); String sql = "insert into photo (id,name,photo)values(?,?,?)"; ps = conn.prepareStatement(sql); ps.setInt(1, 1); ps.setString(2, "Tom"); ps.setBinaryStream(3, in, in.available()); int count = ps.executeUpdate(); if (count > 0) { System.out.println("插入成功!"); } else { System.out.println("插入失败!"); } } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.closeConn(conn); if (null != ps) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } } } // 读取数据库中图片 public static void readDB2Image() { String targetPath = "C:/Users/Jia/Desktop/mogen.jpg"; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = DBUtil.getConn(); String sql = "select * from photo where id =?"; ps = conn.prepareStatement(sql); ps.setInt(1, 1); rs = ps.executeQuery(); while (rs.next()) { InputStream in = rs.getBinaryStream("photo"); ImageUtil.readBin2Image(in, targetPath); } } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.closeConn(conn); if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } } } //测试 public static void main(String[] args) { //readImage2DB(); readDB2Image(); }}看完了这篇文章,相信你对将图片添加到mysql中的方法有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
图片
数据
数据库
二进制
类型
方法
存储
测试
字段
对象
篇文章
要么
流转
成功
上代
参数
完了
实例
更多
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
描述一下软件开发过程
服务器 BIOS 安全性
怎样打开系统管理服务器
石柱网络安全宣传
服务器安全防护好干吗
应用软件开发定做
酒店信息管理数据库设计
重庆外汇自动交易软件开发
滨州水道蕖互联网科技有限公司
战队的成员表数据库怎么设计
我的梦想 软件开发
人民网地方领导干部数据库
网络安全 关非
最终幻想服务器玩家数
数据库中的存储过程的好处
金华java软件开发工具
软件开发服务公司运营方案
dell服务器维修常州
无网络安全管理制度
校园网络安全手抄报初二
农行数据库使用方法
苏州推广软件开发销售价格
北京有信网络技术
邹平物料开单软件开发公司
网络安全系统的规划方案
面试题 数据库
软件开发典型阶段
网络安全专业对代码能力要求
lol在广东的服务器云空间
数据库文件干什么用的