正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进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数据库相关推荐

  1. 怎么把图片存入mysql_如何把图片存储到mysql数据库中

    因为项目需求,必须要把图片存储到mysql数据库中. 首先 mysql数据库中的表 test 字段 photo 字段的类型是 mediumblob 执行插入数据的时候报: MySql.Data.MyS ...

  2. Mysql数据库申请

    前段时间大部门下新成立了一个推广百度OCR.文字识别.图像识别等科技能力在金融领域应用的子部门.因为部门刚成立,基础设施和人力都是欠缺的.当时分到我们部门的任务是抽调一个人做新部门主站前端开发工作.本 ...

  3. 怎么把图片存在mysql_如何把图片存储在mysql中

    把图片存储在mysql中的方法:1.获取需要保存的图片:2.将图片上传到指定路径下的文件夹中:3.将路径保存到变量,并将变量的值保存到数据库中的相应字段即可. 具体方法一般有两种: 1.将图片保存的路 ...

  4. QT五子棋游戏课设及源码(连接mysql数据库含打开并运行程序的教程)

    gdut大一下学期c++课设(得分:95) 实验报告及源码压缩包百度云下载: 链接:https://pan.baidu.com/s/1zO5ofMz09fiWihxCcZcFbg 提取码:ddav 首 ...

  5. php将图片存在mysql中_如何把图片存储在mysql中

    把图片存储在mysql中的方法:1.获取需要保存的图片:2.将图片上传到指定路径下的文件夹中:3.将路径保存到变量,并将变量的值保存到数据库中的相应字段即可. 具体方法一般有两种: 1.将图片保存的路 ...

  6. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  7. MySQL数据库+命令大全+常用操作

    格式:mysql -h主机地址 -u用户名 -p用户密码 1. 例:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示 ...

  8. mysql数据库是一个软件呐_15款好用的mysql管理软件

    1. Induction Induction是一款用于理解数据关系的开源管理工具,它可用来探索行/列,运行查询和数据可视化等方面.该工具支持多种数据库,包括PostgreSQL,MySQL,SQLit ...

  9. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

最新文章

  1. 李宏毅机器学习笔记4:Brief Introduction of Deep Learning、Backpropagation(后向传播算法)...
  2. ORM映射框架总结--数据操作(五)
  3. 关于初学者markdown一些问题回答
  4. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(优雅上下线)
  5. 使用JUnit对ADF应用程序进行单元测试
  6. Java笔记01-数组相关
  7. Failure to find com.oracle:ojdbc6:jar:11.2.0.1.0
  8. JS中的防抖跟节流(DebounceThrottle)
  9. sklearn之Pipeline 估计器
  10. 软件汉化工具:eXeScope
  11. 查找本库包括某字段的全部表
  12. PySide2 QCheckBox控件应用
  13. Python UI自动化 编程(一) UIAutomation
  14. 新浪邮箱注册,email注册申请
  15. java红牛农场,在新加坡的,完一朋友一个夜班喝5瓶红牛。 下班坐地
  16. Jetpack 系列之AppSearch
  17. JDBC数据库连接测试工具
  18. unity3d之读取图集图片
  19. Popular MVC框架swagger+knif4j接口文档工具使用示例
  20. 智能充电桩开发(一):系统总体设计概述

热门文章

  1. 数字IC手撕代码-有限状态机FSM-饮料机
  2. Ubuntu 系统 OpenCV 4 无法打开视频文件解决方案
  3. Linux 系统进程管理与定时任务
  4. 毕业季,大学生一定要知道的IT培训机构招生套路!(蜗牛学院)
  5. STM8L05X VS STM8L15X 区别
  6. 员工转正申请书_员工转正申请书怎么写 新员工转正申请书范文简短精选5篇
  7. Cause: java.sql.SQLException: Data truncated for column 'comment' at row 1
  8. Flink初探之 动态限流
  9. 经验分享-闲丰宝怎样做
  10. ETF期权显著提高标的证券定价效率