1、CLOB乱码分享到Hibernate+Spring彻底搞定Clob、Blob的存取 2007-11-16 17:28:54标签:Spring Hibernate 休闲 Blob Clob 版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 Hibernate+Spring彻底搞定Clob、Blob的存取 摘要:本文通过一个实例讲述如何通过Spring2+Hibernate3来快捷操作数据库中的Lob字段。环境:Oracle10g、Srping2、Hibernate3、JUint4说明:由于时间紧迫,没有详细写出思路。运行一下例子就明白了。一、创建实体并添加Xdoclet的Hibe
2、rnate标签/* 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
3、 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 att
4、ribute=field-description value=标识 * hibernate.generator-param name=sequence value=SEQ_GW */ public Long getId() return id; public void setId(Long id) this.id = id; /* * hibernate.property column=workDate not-null=false type=timestamp * hibernate.meta attribute=field-description value=工作日期 */ public
5、Date getWorkDate() return workDate; public void setWorkDate(Date workDate) this.workDate = workDate; /* * hibernate.property column=weather not-null=false length=24 * hibernate.meta attribute=field-description value=天气 */ public String getWeather() return weather; public void setWeather(String weath
6、er) this.weather = weather; /* * hibernate.property 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; /* * hibernate.property column=state not-null
7、=false length=2 * hibernate.meta attribute=field-description value=状态 */ public String getState() return state; public void setState(String state) this.state = state; /* * hibernate.property column=orgId type=long * hibernate.meta attribute=field-description value=机构id */ public Long getOrgId() retu
8、rn orgId; public void setOrgId(Long orgId) this.orgId = orgId; /* * hibernate.property column=userId type=long * hibernate.meta attribute=field-description value=用户id */ public Long getUserId() return userId; public void setUserId(Long userId) this.userId = userId; /* * hibernate.property column=cre
9、ateDate not-null=false type=timestamp * hibernate.meta attribute=field-description value=创建日期 */ public Date getCreateDate() return createDate; public void setCreateDate(Date createDate) this.createDate = createDate; /* * hibernate.property column=image type=blob not-null=false * hibernate.meta attr
10、ibute=field-description value=图片 */ public byte getImage() return image; public void setImage(byte image) this.image = image; 二、通过XDoclet生成Mapping,并修正lob映射的类型为Spring提供的类型!DOCTYPE hibernate-mapping PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/EN url 工作日志 标识 SEQ_GW 工作日期 天气 内容 状态 机构id 用户id 创建日期 图片 三、通过
11、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
12、) ); 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_gzrz.orgId is 机构id; comment on column r
13、c_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 Comm
14、onDAO /* * 根据日期查询工作日志 * * 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 分页对象 * re
15、turn 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层
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1