关于 hibernate oracle jdbc处理 blob clob 字段

在平时处理一些比较量大的文字数据时候,有可能会出现varchar2 或者long 都无法放下,于是我们想到了oracle 的blob clob ,但是Oracle限制通过它的JDBC驱动传递的byte数组的大小。如果你希望使用很大数量的binary或者serializable 类型的话,你需要打开hibernate.jdbc.use_streams_for_binary。这只能通过JVM级别设定。

但是 ,千万不要以为 blob clob是无敌的 = =!

我觉得无论如何,都最好不要往BLOB中存放大文件。毕竟从数据库中读大文件,是非常缓慢的(想想几百兆的文件从数据库一点一点都到服务器,然后再一点一点response出去)。我觉得大文件还是以文件的方式存放比较好。而且传输的时候,直接给出链接就够了。剩下的事情,由操作系统自己往网卡发就是了。可以大大减轻压力。
HibernateJDBC做了很多封装。所以我们从Hibernate得到的CLOB和BLOB其实都是Hibernate自己实现的。而像Oracle之类的一些数据库,他们如果要操作BLOB、CLOB,需要用他们自己实现的对象。而Hibernate中得到的大字段对象是无法转化成数据库特有的大字段对象的。如果非要这么做,只能单独写纯JDBC。那么JDBC的获得、代码耦合、事务难以控制等问题都来了。
至于缓冲,我不知道数据库驱动保存BLOB能否自动缓冲。但是,缺省情况下,是要先把整个文件都读到内存中的。这个可无法缓冲。所以,如果一个人读入一个10M的文件,那么这10M在存入数据库前,都要保留在内存中,100个人的话,就要1G。如果更大,那么内存需要更是恐怖。

 

 

Oracle JBDC不允许流操作以批量方式执行.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库中的BLOBCLOB是用来储大数据(二进制大对象和字符大对象)的数据类型。BLOB可以储二进制数据,如图片、音频和视频等,而CLOB则用于储文本数据。 要导出BLOBCLOB数据,可以使用Oracle数据库提供的工具和方法。以下是一种常见的导出方法: 1. 使用 Oracle SQL Developer 进行导出: - 打开 Oracle SQL Developer 工具,并连接到要导出的数据库。 - 在“工具栏”上选择“导出数据”选项。 - 在导出向导中,选择要导出的表并指定目标文件夹。 - 在“导出格式”下,选择“BLOB”或“CLOB”。 - 点击“下一步”并根据导出设置完成导出过程。 要导入BLOBCLOB数据,也可以使用类似的方法: 1. 使用 Oracle SQL Developer 进行导入: - 打开 Oracle SQL Developer 工具,并连接到要导入的数据库。 - 在“工具栏”上选择“导入数据”选项。 - 在导入向导中,选择要导入的表和数据文件。 - 在“导入格式”下,选择“BLOB”或“CLOB”。 - 点击“下一步”并根据导入设置完成导入过程。 此外,还可以使用PL/SQL语言编写脚本来导出和导入BLOBCLOB数据。使用PL/SQL可以更灵活地进行数据处理和转换。可以编写一段脚本来查询BLOBCLOB数据,并将其导出到文件中,然后在另一个数据库上运行脚本来导入数据。 总之,Oracle数据库提供了多种方法来导出和导入BLOBCLOB数据。使用这些方法,可以方便地将大数据对象从一个数据库迁移到另一个数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值