简单,向MySql中存入图片
学习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中存入图片相关推荐
- jsp mysql 图片路径,请教JSP中怎么向MySql中存入和取出图片
当前位置:我的异常网» Java Web开发 » 请教JSP中怎么向MySql中存入和取出图片 请教JSP中怎么向MySql中存入和取出图片 www.myexceptions.net 网友分享于:2 ...
- mysql图片_往MySQL中存储图片的方法
1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...
- 往MySQL中存储图片
往 MySQL中存储图片 1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦 ...
- mysql怎么放入图片_往MySQL中存储图片的方法
1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...
- mysql int()_简单谈谈MySQL中的int(m)
我们在设计表的时候,如果碰到需要设置int(整型)的时候,通常会按照惯例(大家都这样写)设置成int(11).那么这里为什么是11呢?代表的又是什么呢? 以前我一直以为这里是在限制int显示的宽度,后 ...
- 简单聊聊MySQL中的六种日志
(一)概述 MySQL中存在着以下几种日志:重写日志(redo log).回滚日志(undo log).二进制日志(bin log).错误日志(error log).慢查询日志(slow query ...
- 关于MySQL 中存取图片数据
MySQL中存取文件的重点在于图片在数据库中存储的数据类型,以及将数据读出来后的数据类型. MySQL可以使用LONGBLOB或者BLOB类型存储,在java中可以使用byte[]类型来接数据. 下面 ...
- android 读取mysql中的图片_Android 通过API获取数据库中的图片文件方式
Overview 今天复习了一下Android 如何将我们数据库中图片获取出来,并且将其转换为bitmap进行显示. 开发环境以及技术 使用Visual Studio 2019 Android Stu ...
- mysql 存入图_c# 如何向mysql数据库中存入图片
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 private void button2_Click(object sender, EventArgs e) { openFileDialog1.Filt ...
最新文章
- 浏览器从输入url到页面加载完成发生了什么
- CSDN如何编辑数学公式
- 关于Flex-Mvc的几个框架的简单介绍
- 批量梯度下降 linux,梯度下降的三种形式BGD,SGD,MBGD(MSGD)
- gin的Bindxxx和ShouldBindxxx的区别
- 我见过太多PhD,精神崩溃、心态失衡、身体垮掉、一事无成
- linux下安装redmine2.5.1详细步骤
- SpringMVC传递数组请求问题
- Windows安装Oracle与PlSql教程
- word封面下划线长度固定
- kali linux网卡推荐,BT5 Kali Linux 网卡选择
- 光谱分析中的变量选择
- 解决Linux“Device is busy”与磁盘只读
- Linux服务器批量管理工具 - TeamRemote
- Win10重装win7时一直显示windows启动中,不要慌
- octave常用指令
- 互联网思维——社会化思维
- flink-cdc 使用
- 《实用多媒体技术》课程习题及解答
- 基于开源大模型Vicuna-13B构建私有制库问答系统