文件转为二进制流保存在数据库

其实文件不建议保存在数据库,保存URL会更好,文件这种让文件系统去操作更好。存在数据库读取会影响性能!

数据库在存储数据时,有两种格式,一种是以字节存储的,二进制数据。

另一种是以字符形式存储的。

数据库要存储二进制数据,其数据库的列的属性必须是二进制类型的,如MySQL中,类型为BINARY和VARBNARY的列以二进制形式存储数据。

因为二进制一般都是字节数组,所以,要使用动态的SQL语句,要执行动态的SQL语句,必须使用PerparedStatement,

它的setBytes方法给未确定部分赋字节数组值。然后调用executeUpdate方法遍完成二进制数据的写入。同样道理,要从数据库中读取二进制数据的时候,

遍历结果集调用ResultSet的getBytes方法。获得字节数组(也就是二进制数组)。

二进制数组一般存储比较大的数据,如图片,影视文件。

如果数据库列属性是Blob的,获得结果集后调用ResultSet的getBlob方法,获得Blob数据,一个java.sql.Blob对象。Blob类的getBinaryStream方法获得Blob数据的字节输入流。便可以读取Blob数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值