zoukankan      html  css  js  c++  java
  • 数据库之二进制数据

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

           在很多各种数据库中的二进制处理方式不同,数据类型也就不一样,微软的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对象提供可以操作二进制数据的接口,用来对二进制数据操作是很方便的。

  • 相关阅读:
    learning java ATW ScrollPane
    SQLSERVER2008R2正确使用索引
    SQL Server 数据操作
    jar war ear
    浅谈SQL Server中的三种物理连接操作
    SqlServer在视图上创建索引的条件
    Sqlserver 查看视图或者存储过程定义
    过滤器配置
    SpringMVC架构
    N+1问题其实应该叫做1+N 问题
  • 原文地址:https://www.cnblogs.com/shanmu/p/2145320.html
Copyright © 2011-2022 走看看