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进行大字段操作还可以通过自定义类型实现,公司里用的就是这个,不过我懒,还是喜欢这种方法
我感觉大字段的保存应该有如下几步:
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进行大字段操作还可以通过自定义类型实现,公司里用的就是这个,不过我懒,还是喜欢这种方法
相关文章推荐
- 使用Hibernate 创建数据表时,如何使数据库中的字段的长度和Hibernate映射的长度相等呢?
- hibernate统一数据的ID统一数据库相同字段的方法 继承的写法
- HibernateDaoSupport 无法保存数据到数据库,并且不报错
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字段中
- 转载!!!Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- 解决getHibernateTemplate().save ()不能将数据保存到数据库的问题
- 数据的保存顺序与Hibernate对数据库操作的影响
- JAVA中如何将以Date型的数据保存到数据库以Datetime型的字段中
- SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- 2009-12-01 15:10 SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- 数据表/字段名称和数据库关键字冲突在Hibernate映射中的处理办法
- SSH之Hibernate save或update方法已经执行,但是数据库没保存数据
- 数据的保存顺序与Hibernate对数据库操作的影响
- 用hibernate 读取BLOB字段保存到数据库中
- hibernate学习过程问题(1)--通过代码保存数据时,数据库始终只有一条数据
- Hibernate插入和修改数据到数据库中时不修改存在默认值字段
- Kettle 生成的XML格式数据保存到Oracle 数据库的BLOB类型字段中
- SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- SQL Server 不清空数据,修改数据库字段、结构,阻止保存要求重新创建表的更改
- SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存