当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

操作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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 系统学习hibernate之一:操作hibernate中的SchemaExport生成数据
  • 操作Hibernate储存大对象到达梦数据库
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .