Hibernate+Spring彻底搞定Clob、Blob的存取.docx_第1页
Hibernate+Spring彻底搞定Clob、Blob的存取.docx_第2页
Hibernate+Spring彻底搞定Clob、Blob的存取.docx_第3页
Hibernate+Spring彻底搞定Clob、Blob的存取.docx_第4页
Hibernate+Spring彻底搞定Clob、Blob的存取.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hibernate+Spring彻底搞定Clob、Blob的存取摘要:本文通过一个实例讲述如何通过Spring2+Hibernate3来快捷操作数据库中的Lob字段。环境:Oracle10g、Srping2、Hibernate3、JUint4 说明:由于时间紧迫,没有详细写出思路。运行一下例子就明白了。 一、创建实体并添加Xdoclet的Hibernate标签 /* * author leizhimin * hibernate.mapping default-lazy=false * hibernate.meta attribute=class-description value=工作日志 * hibernate.class table=rc_gzrz */public class WorkNote private Long id; /标识 private Date workDate; /日期 private String weather; /天气 private String content; /日志内容(Clob) private String state; /日志状态 private Long orgId; /机构id private Long userId; /用户id private Date createDate; /创建日期 private byte image; /图片 public static final String WORKNOTE_BLANK = 00; /未填写 public static final String WORKNOTE_FULL = 11; /已填写 /* * hibernate.id generator-class=sequence column=BS * hibernate.meta attribute=field-description value=标识 * hibernate.generator-param name=sequence value=SEQ_GW */ public Long getId() return id; public void setId(Long id) this.id = id; /* * perty column=workDate not-null=false type=timestamp * hibernate.meta attribute=field-description value=工作日期 */ public Date getWorkDate() return workDate; public void setWorkDate(Date workDate) this.workDate = workDate; /* * perty column=weather not-null=false length=24 * hibernate.meta attribute=field-description value=天气 */ public String getWeather() return weather; public void setWeather(String weather) this.weather = weather; /* * perty column=content not-null=false type=text * hibernate.meta attribute=field-description value=内容 */ public String getContent() return content; public void setContent(String content) this.content = content; /* * perty column=state not-null=false length=2 * hibernate.meta attribute=field-description value=状态 */ public String getState() return state; public void setState(String state) this.state = state; /* * perty column=orgId type=long * hibernate.meta attribute=field-description value=机构id */ public Long getOrgId() return orgId; public void setOrgId(Long orgId) Id = orgId; /* * perty column=userId type=long * hibernate.meta attribute=field-description value=用户id */ public Long getUserId() return userId; public void setUserId(Long userId) this.userId = userId; /* * perty column=createDate not-null=false type=timestamp * hibernate.meta attribute=field-description value=创建日期 */ public Date getCreateDate() return createDate; public void setCreateDate(Date createDate) this.createDate = createDate; /* * perty column=image type=blob not-null=false * hibernate.meta attribute=field-description value=图片 */ public byte getImage() return image; public void setImage(byte image) this.image = image; 二、通过XDoclet生成Mapping,并修正lob映射的类型为Spring提供的类型 工作日志 标识 SEQ_GW 工作日期 天气 内容 状态 机构id 用户id 创建日期 图片 三、通过Mapping 用XDoclet生成数据库(Oracle)脚本,并建表 drop table rc_gzrz cascade constraints; create table rc_gzrz ( BS number(19,0) not null, workDate timestamp, weather varchar2(24 char), content clob, state varchar2(2 char), orgId number(19,0), userId number(19,0), createDate timestamp, image blob, primary key (BS) ); comment on table rc_gzrz is 工作日志; comment on column rc_gzrz.BS is 标识; comment on column rc_gzrz.workDate is 工作日期; comment on column rc_gzrz.weather is 天气; comment on column rc_gzrz.content is 内容; comment on column rc_gzrz.state is 状态; comment on column rc_Id is 机构id; comment on column rc_gzrz.userId is 用户id; comment on column rc_gzrz.createDate is 创建日期; comment on column rc_gzrz.image is 图片; 四、创建DAO层 /* * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-11-16 * Time: 10:55:50 * To change this template use File | Settings | File Templates. */public interface WorkNoteDAO extends CommonDAO /* * 根据日期查询工作日志 * * param workDate 工作日期 * param userId 用户id * param orgId 机构id * param sp 分页对象 * return List */ public List findWorkNoteByDate(Date workDate, Long userId, Long orgId, SplitPage sp); /* * 根据状态查询工作日志 * * param state 日志状态 * param userId 用户id * param orgId 机构id * param sp 分页对象 * return List */ public List findWorkNoteByState(String state, Long userId, Long orgId, SplitPage sp); /* * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-11-16 * Time: 10:56:00 * To change this template use File | Settings | File Templates. */public class WorkNoteDAOImpl extends CommonDAOImpl implements WorkNoteDAO public List findWorkNoteByDate(Date workDate, Long userId, Long orgId, SplitPage sp) return null; public List findWorkNoteByState(String state, Long userId, Long orgId, SplitPage sp) return null; 五、创建带JTA事务控制的业务service层 /* * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-11-16 * Time: 16:43:57 * To change this template use File | Settings | File Templates. */public interface OfficeService public void saveWorkNote(WorkNote workNote); public void updateWorkNote(WorkNote workNote); /* * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-11-16 * Time: 16:45:54 * To change this template use File | Settings | File Templates. */public class OfficeServiceImpl implements OfficeService private WorkNoteDAO workNoteDAO; public WorkNoteDAO getWorkNoteDAO() return workNoteDAO; public void setWorkNoteDAO(WorkNoteDAO workNoteDAO) this.workNoteDAO = workNoteDAO; public void saveWorkNote(WorkNote workNote) this.workNoteDAO.saveObject(workNote); public void updateWorkNote(WorkNote workNote) this.workNoteDAO.updateObject(workNote); 六、书写单元测试,并运行/* * Created by IntelliJ IDEA. * User: leizhimin * Date: 2007-11-16 * Time: 16:49:17 * To change this template use File | Settings | File Templates. */public class TestOffice extends TestCase public void test_worknote_save() OfficeService officeService = (OfficeService) ContextHelper.getContext().getBean(o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论