您的位置:首页 > 数据库

hibernate 保存大字段数据到数据库(sqlserver)

2007-06-30 09:05 323 查看
这里是以sqlserver为例子的 ,oracle的特殊性暂不考虑。

我感觉大字段的保存应该有如下几步:

1 首先你必须得到一个代表上传文件的数据流;

2 需要一张表存储大字段数据:包括内容,类型(mimetype),这就要看你读取时如何操作文件了:

如果你想缓存到硬盘上的话可能需要一个文件路径字段,等等。

3 进行保存操作

假设你已经能够获得文件流对象了应该是一个inputstream,我们可以编写下面的代码保存数据到数据库:

tran = session.beginTransaction();

TblEAccessory test=new TblEAccessory();
test.setId("testId");
test.setFileCacheName(ufile.getBaseFileName());
test.setFileExt(ufile.getExt());

//这里没有设置mimetype,应该设置的

Blob b = Hibernate.createBlob(ufile.fileItem.getInputStream());
test.setFileContent(b);
session.save(test);
tran.commit();

这里的ufile对象是封装了fileupload的fileItem的一个类的实例,主要是存储了上传文件的流。最关键的是

ufile.fileItem.getInputStream(),得到了文件的流对象,怎么得到并不是这里需要讨论的问题。

然后我们创建了一个hibernate 大字段,将值设置上就行了。

--为什么没使用oracle作例子,因为好风最近做的项目老是使用sqlserver;再加上听说oracle的最新驱动已经解决了hibernate大字段的特殊操作,还没试过,看看。

--使用hibernate进行大字段操作还可以通过自定义类型实现,公司里用的就是这个,不过我懒,还是喜欢这种方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐