将图片存储到mysql数据库
正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进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数据库相关推荐
- 怎么把图片存入mysql_如何把图片存储到mysql数据库中
因为项目需求,必须要把图片存储到mysql数据库中. 首先 mysql数据库中的表 test 字段 photo 字段的类型是 mediumblob 执行插入数据的时候报: MySql.Data.MyS ...
- Mysql数据库申请
前段时间大部门下新成立了一个推广百度OCR.文字识别.图像识别等科技能力在金融领域应用的子部门.因为部门刚成立,基础设施和人力都是欠缺的.当时分到我们部门的任务是抽调一个人做新部门主站前端开发工作.本 ...
- 怎么把图片存在mysql_如何把图片存储在mysql中
把图片存储在mysql中的方法:1.获取需要保存的图片:2.将图片上传到指定路径下的文件夹中:3.将路径保存到变量,并将变量的值保存到数据库中的相应字段即可. 具体方法一般有两种: 1.将图片保存的路 ...
- QT五子棋游戏课设及源码(连接mysql数据库含打开并运行程序的教程)
gdut大一下学期c++课设(得分:95) 实验报告及源码压缩包百度云下载: 链接:https://pan.baidu.com/s/1zO5ofMz09fiWihxCcZcFbg 提取码:ddav 首 ...
- php将图片存在mysql中_如何把图片存储在mysql中
把图片存储在mysql中的方法:1.获取需要保存的图片:2.将图片上传到指定路径下的文件夹中:3.将路径保存到变量,并将变量的值保存到数据库中的相应字段即可. 具体方法一般有两种: 1.将图片保存的路 ...
- .net连接mysql数据_.net连接MYSQL数据库的方法及示例!
连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...
- MySQL数据库+命令大全+常用操作
格式:mysql -h主机地址 -u用户名 -p用户密码 1. 例:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示 ...
- mysql数据库是一个软件呐_15款好用的mysql管理软件
1. Induction Induction是一款用于理解数据关系的开源管理工具,它可用来探索行/列,运行查询和数据可视化等方面.该工具支持多种数据库,包括PostgreSQL,MySQL,SQLit ...
- c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...
这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...
最新文章
- 李宏毅机器学习笔记4:Brief Introduction of Deep Learning、Backpropagation(后向传播算法)...
- ORM映射框架总结--数据操作(五)
- 关于初学者markdown一些问题回答
- SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(优雅上下线)
- 使用JUnit对ADF应用程序进行单元测试
- Java笔记01-数组相关
- Failure to find com.oracle:ojdbc6:jar:11.2.0.1.0
- JS中的防抖跟节流(DebounceThrottle)
- sklearn之Pipeline 估计器
- 软件汉化工具:eXeScope
- 查找本库包括某字段的全部表
- PySide2 QCheckBox控件应用
- Python UI自动化 编程(一) UIAutomation
- 新浪邮箱注册,email注册申请
- java红牛农场,在新加坡的,完一朋友一个夜班喝5瓶红牛。 下班坐地
- Jetpack 系列之AppSearch
- JDBC数据库连接测试工具
- unity3d之读取图集图片
- Popular MVC框架swagger+knif4j接口文档工具使用示例
- 智能充电桩开发(一):系统总体设计概述
热门文章
- 数字IC手撕代码-有限状态机FSM-饮料机
- Ubuntu 系统 OpenCV 4 无法打开视频文件解决方案
- Linux 系统进程管理与定时任务
- 毕业季,大学生一定要知道的IT培训机构招生套路!(蜗牛学院)
- STM8L05X VS STM8L15X 区别
- 员工转正申请书_员工转正申请书怎么写 新员工转正申请书范文简短精选5篇
- Cause: java.sql.SQLException: Data truncated for column 'comment' at row 1
- Flink初探之 动态限流
- 经验分享-闲丰宝怎样做
- ETF期权显著提高标的证券定价效率