posts - 3,  comments - 2,  trackbacks - 0

近期 需要操作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)  编辑  收藏 所属分类: 站在他人的肩膀上

只有注册用户登录后才能发表评论。


网站导航: