欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

图片上传存储数据库的2种方法讲解(Mysql)

程序员文章站 2022-10-18 20:05:26
数据库Mysql存储,读取图片 在项目中,很多情况下都对图片的存储读取有需求,而图片怎样存入数据库的方式可谓是五花八门,现在就整理一下数据库与图片不可不说的关系。 1,路径存储...

数据库Mysql存储,读取图片

在项目中,很多情况下都对图片的存储读取有需求,而图片怎样存入数据库的方式可谓是五花八门,现在就整理一下数据库与图片不可不说的关系。

1,路径存储在数据库:

数据库的存储资源是有限的,最起码比磁盘比起来花费会昂贵很多,不可能将图片视频等存入数据库,那么最有可能的就是中介了,即数据库中存入的只是图片或者视频的地址,路径等,并不存储真正的东西,需要的时候就去找中介要地址,然后得到想要的东西。可以直接存储文件路径,也可以转化后存取,个人比较喜欢转化后存取,这样对头像这类信息量比较大,又避免重复来说是一个不错的选择,为了避免重复可以对文件命名时采用java中的UUID实现,UUID是根据电脑的硬件网卡,当前时间(毫秒级)等多种数据组合,全球唯一UUID uuid = UUID.randomUUID();当然也可以存取URL,这是针对网页数据来说,等使用时,再用URL请求进行图片的加载。

2,使用blob(binary large Object)二进制大对象存储:

当然为了能用数据库进行存储,可以将图片转化为二进制对象流,当需要用到时,再以流对象的方式取出,转化为所需要的格式。具体的方式为定义输入输出流,inputstream,outputstream,亦可以使用bufferinputstream,和bufferoutputstream。存入数据库的过程中,使用preparestatement.setBinaryStream.完成二进制的写入。

读取时用inputstream输入流进行接收,然后转化为相应的图片格式。注:mysql中blob不能设置默认值,所以一旦存入图片有误后,会发生读取错误,因此需要对出错进行预判。