java 存储blob 达梦数据库,操作Hibernate储存大对象到达梦数据库[Java编程]

赞助商链接

本文“操作Hibernate储存大对象到达梦数据库[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

利用达梦数据库的大字段前不得不说一下数据库大字段的性能问题:在数据库中,常常需求用到大字段范例,如Oracle中long、blob、clob,SQLServer中的text、image,MySql中的text、longtext、clob、blob以及达梦数据库中的clob、blob范例.存储的信息大约主如果两类,一类是长文本,如大段的文字,普通的varchar最长只能存储4K的数据,已经不能满意要求;另一类是存储二进制信息,如上传的文件等.不过普通情形下,大字段不意味着保存很大的文件,比方很长的文章,图标,小图片等等.数据过大保存在数据库有诸多的问题:

1.速度慢:影响一张表的查询速度的,除了行数,还包含表所占的物理空间的大小.此表在数据量较小时,在查询方面感受不到明显的差别.但是假如某个字段所存储的数据都是大段文本或较大的文件时,会招致表的物理空间疾速变大,该字段所占用的空间有大概到达整表所占空间的90%以上.在此底子上,假如行数再增添到数十万、上百万级时,整个表所占的空间将到达一个惊人的数字,查询的速度亦会遭到非常大的影响.

2.操作不便利:必须把数据库翻开一个流,构造一个Buffer,然后再输出一个ServletOutputStream.占用数据库衔接,加重数据库拜候负载不说,假如用户忽然中止下载,还需求处理数据库关闭行动,简单造成性能问题.假如把整个数据读入内存再输出,则内存占用非常可观.假如是硬盘文件,只要返回一个URL 便可以了.即便你不但愿用户直接拜候到文件,你也可以构造一个IOStream来输出文件,既不会占用数据库资源,传输速度也快.

3.性能有问题:分外的情形是,假如并发很多用户来下载大文件的时刻,利用服务器要占用非常多的内存来缓存文件内容,假定并发10个用户,下载10MB的文件,JVM的峰值就至少需求100MB内存来支持,很简单造成JVM崩溃.

所以说数据库大字段并不合适存储过大的数据,数据过大大概会影响到数据库存储的性能.

下面言归正传,利用Hibernate操作达梦数据库中的大字段应当有以下几步:

1 首先需求一张表存储大字段数据:包含内容,范例;

2 必须得到一个代表上传文件的数据流;

3 举行保存操作

好了我们先建一张表,里面包含达梦数据库的2个大字段范例(CLOB、BLOB)字段:

--成立表

create table TESTLOB(

ID int primary key,

TITLE varchar(50),

CLOBNAME varchar(50),

CLOBCONTENT clob,

BLOBNAME varchar(50),

BLOBCONTENT blob

);

在成立一个序列用于处理表的流水ID:

--成立序列

CREATE SEQUENCE "TESTLOB"."SEQ_TESTLOB_ID"

INCREMENT BY 1 START WITH 1 MAXVALUE 100000 MINVALUE 1

NOCYCLE

以上是“操作Hibernate储存大对象到达梦数据库[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值