数据库之二进制数据

博客探讨了在数据库中存储二进制数据的需求,如文件、图片和视频。介绍了SQL Server的IMAGE类型、MySQL的BLOB对象以及Oracle的RowId和Blob对象。通过JDBC利用流处理来存储二进制数据,特别是使用PreparedStatement接口的便利性。
摘要由CSDN通过智能技术生成

     在使用数据库的时候大多数情况下数值型、字符型和日期类型的变量存储就已经满足了我们很多的需求。但是在某些时候,我们还需要一种类型来存储数据,那就是二进制的数据了。如果需要存储文件,图片或者视频之类的只能使用二进制的数据来存储的东西时,我们就需要知道怎么样来操作数据库中的二进制数据了。

       在很多各种数据库中的二进制处理方式不同,数据类型也就不一样,微软的sqlserver中二进制数据类型可以使用IMAGE类型,IMAGE类型可以存放最大 2G的二进制数据,应该可以满足绝大多数的需求了。在mysql数据库中二进制数据使用blob对象,对于存储空间的大小可以选择4种类型的blob对象。在Oracle数据库中RowId对象可以存储10个字节的二进制数据,Blob对象可以存储最大4G的数据,这些就足够了。

       那么怎么样使用JDBC在数据库中存储二进制数据呢?答案就是使用流来处理。在JDBC中,使用输入流来读取一个数据,然后将流中的数据存储为一个byte[] 类型的字节数组,也就是存储为一个二进制的对象。当然如果使用PrepareStatement接口,那就很方便了,可以使用预编译的设置参数方式直接将输入流设置为存储参数,方法是setBinaryStream(int parameterIndex, InputStream x, int length)。这样就可以将二进制的数据存储到数据库中了。

    读取数据库中的二进制数据很简单,就是使用ResultSet结果集中的getBinaryStream()方法就可以从数据库中读取出二进制的数据了。

    对于JDBC还有一中存储二进制数据的方法,Blob对象提供可以操作二进制数据的接口,用来对二进制数据操作是很方便的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值