近期 需要操作hibernate把图片往sql 2005里添加,先搜集下资料。
以下载自http://blog.csdn.net/haofeng82/archive/2007/06/30/1672299.aspx 在此感谢
这里是以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进行大字段操作还可以通过自定义类型实现,公司里用的就是这个,不过我懒,还是喜欢这种方法
posted on 2007-07-31 00:34
Mr. Michael.Q 阅读(1034)
评论(0) 编辑 收藏 所属分类:
站在他人的肩膀上