您的位置:首页 > 编程语言 > Java开发

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

2007-04-21 22:13 441 查看
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项目开发笔记系列(六)中我会把最新的项目结构重新列出来!

写的难免有不当的地方,请发现的朋友及时指出~~^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: