学习JavaWeb的时候,接触到了mysql,想到向表中存放图片,那今后照片管理就可以用sql语句来执行了,所以尝试了一下,试错过程还挺长的。

1.效果


不是存了个字符串哈,可以看左边的数据类型。

2. 获取blob数据

我们创建一个方法使用FileInputStream读取图片,还有ByteArrayOutputStream将读取的数据写入byte[]数组,然后

public static byte[] getImgStr(String path) throws IOException {FileInputStream fis = new FileInputStream(path);ByteArrayOutputStream out = new ByteArrayOutputStream();int len = 0;byte[] b = new byte[1024];while ((len = fis.read(b))!= -1){out.write(b,0,len);}//接收outbyte[] array = out.toByteArray();fis.close();out.close();return array;}

3.连接数据库并写入sql语句

使用Blob创建一个Blob,然后将我们获取的图片数据转换成blob类型,然后用PreparedStatement执行sql语句,因为它支持占位符并且有setBlob方法可以直接将我们的blob地址中的值写入数据库。然后就大功告成了。

    public static void main(String[] args) {/*加载驱动*/try {Class.forName("com.mysql.cj.jdbc.Driver");//获取连接String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";String user= "root";String password ="123456";try {Connection connection = DriverManager.getConnection(url,user,password);/*插入图片*/byte[] arr = getImgStr("图片地址");Blob blob = connection.createBlob();blob.setBytes(1,arr);String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')";PreparedStatement ps = connection.prepareStatement(sql);ps.setBlob(1,blob);ps.executeUpdate();} catch (SQLException e) {e.printStackTrace();}} catch (ClassNotFoundException | IOException e) {e.printStackTrace();}}

简单,向MySql中存入图片相关推荐

  1. jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片

    当前位置:我的异常网» Java Web开发 » 请教JSP中怎么向MySql中存入和取出图片 请教JSP中怎么向MySql中存入和取出图片 www.myexceptions.net  网友分享于:2 ...

  2. mysql图片_往MySQL中存储图片的方法

    1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...

  3. 往MySQL中存储图片

    往 MySQL中存储图片 1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦 ...

  4. mysql怎么放入图片_往MySQL中存储图片的方法

    1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...

  5. mysql int()_简单谈谈MySQL中的int(m)

    我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11).那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后 ...

  6. 简单聊聊MySQL中的六种日志

    (一)概述 MySQL中存在着以下几种日志:重写日志(redo log).回滚日志(undo log).二进制日志(bin log).错误日志(error log).慢查询日志(slow query ...

  7. 关于MySQL 中存取图片数据

    MySQL中存取文件的重点在于图片在数据库中存储的数据类型,以及将数据读出来后的数据类型. MySQL可以使用LONGBLOB或者BLOB类型存储,在java中可以使用byte[]类型来接数据. 下面 ...

  8. android 读取mysql中的图片_Android 通过API获取数据库中的图片文件方式

    Overview 今天复习了一下Android 如何将我们数据库中图片获取出来,并且将其转换为bitmap进行显示. 开发环境以及技术 使用Visual Studio 2019 Android Stu ...

  9. mysql 存入图_c# 如何向mysql数据库中存入图片

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 private void button2_Click(object sender, EventArgs e) { openFileDialog1.Filt ...

最新文章

  1. 浏览器从输入url到页面加载完成发生了什么
  2. CSDN如何编辑数学公式
  3. 关于Flex-Mvc的几个框架的简单介绍
  4. 批量梯度下降 linux,梯度下降的三种形式BGD,SGD,MBGD(MSGD)
  5. gin的Bindxxx和ShouldBindxxx的区别
  6. 我见过太多PhD,精神崩溃、心态失衡、身体垮掉、一事无成
  7. linux下安装redmine2.5.1详细步骤
  8. SpringMVC传递数组请求问题
  9. Windows安装Oracle与PlSql教程
  10. word封面下划线长度固定
  11. kali linux网卡推荐,BT5 Kali Linux 网卡选择
  12. 光谱分析中的变量选择
  13. 解决Linux“Device is busy”与磁盘只读
  14. Linux服务器批量管理工具 - TeamRemote
  15. Win10重装win7时一直显示windows启动中,不要慌
  16. octave常用指令
  17. 互联网思维——社会化思维
  18. flink-cdc 使用
  19. 《实用多媒体技术》课程习题及解答
  20. 基于开源大模型Vicuna-13B构建私有制库问答系统

热门文章

  1. Linux—DNS域名解析服务
  2. 震惊!被这样开发的P2P分发下载技术
  3. 韩顺平老师QQ离线消息
  4. SpringBoot入门学习(五)之旅游网站项目
  5. html下拉选之年份选择
  6. AVVideoCompositionCoreAnimationTool not work --没有显示CALayer
  7. 盘点与编程机器人相关的教育部白名单赛事
  8. 分布式系统的十二个目标
  9. 2014年,趁着互联网金融P2P网贷未被监管,赚点小钱吧~
  10. 关于erf(误差函数)思考