操作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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |