数据库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不能设置默认值,所以一旦存入图片有误后,会发生读取错误,因此需要对出错进行预判。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值