数据库的存储系列———将图片存储到数据库
2023-06-13 09:12:32 时间
大家好,又见面了,我是你们的朋友全栈君。
数据库的存储系列———将图片存储到数据库
在很多时候我们都使用数据库才存储我们的数据,然而我们通常在数据库里面存放的数据大多都支持数或者是一些字符,那么如果我们想在数据库里面存放图片,那么应该要怎么做的?
第一,我们可以将图片所在的路径或者URI存入到数据库里面,这样简单方便。不过这样的缺点也很显然,就是图片路径改变的时候,我们没有办法通过数据库来获取这一张图片。所以这种方法并不是我们所想要的将图片存储到数据的方法。
第二,将图片转化成二进制字节流才存储到数据库。在查看数据库所支持的基本类型当中,我们不难发现数据库支持BLOB和CLOB这种数据类型。那么我们就将图片以这种形式存入到数据库,然后在从数据库中还原这图片
public class ImageUtil {
public static void main(String[] args) throws IOException {
String imagePath = "C:\\Users\\pc\\Desktop\\446968702368648824.jpg";
byte[] bytes = null;
// 将图片转化为二进制流
bytes = imageToByte(imagePath);
for (byte byte1 : bytes) {
System.out.print(byte1);
}
// 将二进制图片转化为字符串
// String string = new String(bytes);
// System.out.println(string);
String path = "C:\\Users\\pc\\Desktop\\446.jpg";
// 将二进制流转化为图片
byteToImage(bytes, path);
}
public static byte[] imageToByte(String path) throws IOException {
FileInputStream fileInputStream = new FileInputStream(new File(path));
byte[] bytes = new byte[fileInputStream.available()];
fileInputStream.read(bytes);
fileInputStream.close();
return bytes;
}
//输出图像到新的路径
public static void byteToImage(byte[] bytes,String newPath) throws IOException {
FileOutputStream fileOutputStream = new FileOutputStream(new File(newPath));
fileOutputStream.write(bytes);
fileOutputStream.close();
}
}
这样就可以通过将图片的字节流放入到数据库中存储了,如果要使用的话,将其转化出来就可以了。不过这里图片不能够太大,BLOB最大能够支持64K的图片,不同数据库有不同的数据类型,大家可以去找找。当然以上代码还提供了能将二进制流变为了字符串的方法(显示看到的是乱码)。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158243.html原文链接:https://javaforall.cn
相关文章
- 将图片存储到mysql数据库[通俗易懂]
- jedis取存 数据库查到的对象_jediscluster存储对象「建议收藏」
- 【数据库原理与运用|MySQL数据库】MySQL存储函数和触发器
- MongoDB:优势于内存的持久存储(mongodb内存数据库)
- cOracle 13c:未来数据库的智能存储及处理(oracle13)
- 揭秘:Oracle数据库为什么不使用索引?(oracle不使用索引)
- 数据库免费开启MySQL数据库,国内高效存储之路(国内免费mysql)
- MySQL索引引擎:优化数据库查询的新方法(mysql索引引擎)
- Oracle非归档模式:优化数据库性能的必备选择(oracle非归档)
- MongoDB数据库:使用命令行管理您的数据(mongodb数据库命令)
- MySQL历史版本下载:获取旧版MySQL数据库软件(mysql历史版本下载)
- MySQL 存储过程声明:优化数据库操作(mysql存储过程声明)
- MySQL安全策略:确保数据库存储和访问的完整性与保密性(mysql安全策略)
- 集MSSQL数据库字符集转换指南(mssql转字符)
- MySQL数据库如何存储图片详解MySQL存储图片的方法(mysql中储存图片)
- 深入MySQL使用Usage获得更好的数据库管理体验(mysql中usage)
- 如何使用Redis将数据存储到数据库(往redis存数据库)
- Oracle数据库中使用浮点数存储实现(oracle写浮点数)
- C语言连接Oracle数据库实现数据读取(c 连接读取oracle)
- 稳定运行Redis 构建持久数据库(稳定redis)
- 文件存储的安全性高于MySQL数据库(mysql不如文件安全)
- 存储优化数据库内容Oracle使用EMC存储(oracle使用EMC)
- Oracle数据库中删除行的流程(oracle中的删除行)