Spring项目开发笔记系列(五)

 Spring项目开发笔记系列(五)

    ---Hibernate持久化类的Annotation方式配置

Spring的这个项目中主要用的配置文件就前面这么几个web.xml,spring-config.xml和struts-config.xml,其它的配置文件比如log4j.properties,validation.xml就不发了,都是以前的配置方式。现在还有一个就是Hibernate3.2的持久化类的Annotation配置方式,如下:

1,所有持久化类的基类:

@MappedSuperclass
public abstract class HibernateObject implements Serializable {
 private Long   id;  //id主键值
 private String name;  //名称,备用字段
 private String status;  //status,备用字段
 private String memo;  //memo,备用字段
 private String createUser;  //创建者,备用字段
 private Date   createTime;  //创建日期,备用字段
 private Date   lastUpdateTime;  //更新日期,备用字段
 
 @Id@GeneratedValue(strategy=GenerationType.IDENTITY)
 public Long getId() {
  return id;
 }
 public void setId(Long id) {
  this.id = id;
 }
 @Column(name="name",length=60)
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 @Column(name="status",length=10)
 public String getStatus() {
  return status;
 }
 public void setStatus(String status) {
  this.status = status;
 }
 @Column(name="memo")
 public String getMemo() {
  return memo;
 }
 public void setMemo(String memo) {
  this.memo = memo;
 }
 @Column(updatable=true,name="createUser",nullable=true,length=60)
 public String getCreateUser() {
  return createUser;
 }
 public void setCreateUser(String createUser) {
  this.createUser = createUser;
 }
 @Column(updatable=false,name="createTime",nullable=false)
 public Date getCreateTime() {
  return createTime;
 }
 public void setCreateTime(Date createTime) {
  this.createTime = createTime;
 }
 @Column(name="lastUpdateTime")
 public Date getLastUpdateTime() {
  return lastUpdateTime;
 }
 public void setLastUpdateTime(Date lastUpdateTime) {
  this.lastUpdateTime = lastUpdateTime;
 }
}


2,持久化类User:

@Entity
@Table(name="sys_user")
public class User extends HibernateObject{
 private static final long serialVersionUID = -2859336461233612422L;
 private String password;
 private String sex;
 private int age;
 private String address;
 private String email;
 private String mobile;
 
 @Column(name="password",nullable=false,length=30)@Length(min=6,max=30)
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 @Column(name="sex",length=5)
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 @Column(name="age")@Range(min=0,max=120)
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 @Column(name="mobile",length=20)
 public String getMobile() {
  return mobile;
 }
 public void setMobile(String mobile) {
  this.mobile = mobile;
 }
 @Column(name="address")
 public String getAddress() {
  return address;
 }
 public void setAddress(String address) {
  this.address = address;
 }
 @Column(name="email",length=100)@Email
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
}

这样配置后,我们无需在生成User.hbm.xml文件了,另外的sql文件也无需再生成了,当我们执行这个持久化类的时候,成序会自动创建一个名字叫“sys_user”的table在我们制定的数据库中~

好了,经过这几步的配置,主要的配置文件和只要技术也就用到了,剩下的就是写Dao,Action子类的了,我就不再往上贴了~~

这样的配置个人感觉他的好处就在于

1,配置文件少,减少了Hibernate配置文件和映射文件

2,Hibernate,Spring,Struts各部分界线比较清晰,便于维护

3,尽量减少了额外操作,如无需再去生成Hibernate映射文件(.hbm.xml)等

以上程序在WindowsXP,JDK1.5.0_11,Tomcat5.0/6.0,WindowsXP,所需lib文件和整体框架在Spring项目开发笔记系列(一)中已经列出(补充一个lib:commons-collections-3.2.jar),

在Spring项目开发笔记系列(六)中我会把最新的项目结构重新列出来!

写的难免有不当的地方,请发现的朋友及时指出~~^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值