三、新建项目
新建一个web project,新建后的目录结构同时包含了新建文件夹page用于放jsp文件,和源文件夹test用于放junit测试文件。同时将用到的包,包括struts,hibernate,spring都导入到lib目录下。
四、创建持久层O/R mapping
1. 在src/com.jandar.model下用hibernate插件从数据库导出app_user的.hbm.xml文件改名为User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.jandar.model">
<class name="User" table="APP_USER">
<id
column="ID"
name="id"
type="integer"
>
![]()
<generator class="assigned" />
![]()
</id>
![]()
<property
column="LASTNAME"
length="10"
name="lastname"
not-null="false"
type="string"
/>
![]()
<property
column="FIRSTNAME"
length="10"
name="firstname"
not-null="true"
type="string"
/>
![]()
</class>
</hibernate-mapping>
2. 通过hibernate synchronizer->synchronizer file生成User.java文件,User对象对应于数据库中的app_user表
注:在eclipse下自动生成的对象文件不完全相同,相同的是每个对象文件必须实现Serializable接口,必需又toString和hashCode方法;
import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
![]()
public class BaseObject implements Serializable ...{
public String toString() ...{
return ToStringBuilder.reflectionToString(this,
ToStringStyle.MULTI_LINE_STYLE);
}
![]()
public boolean equals(Object o) ...{
return EqualsBuilder.reflectionEquals(this, o);
}
![]()
public int hashCode() ...{
return HashCodeBuilder.reflectionHashCode(this);
}
}
![]()
public class User extends BaseObject ...{
private Long id;
private String firstName;
private String lastName;
![]()
/**//**
* @return Returns the id.
*/
![]()
public Long getId() ...{
return id;
}
![]()
/**//**
* @param id The id to set.
*/
![]()
public void setId(Long id) ...{
this.id = id;
}
![]()
/**//**
* @return Returns the firstName.
*/
![]()
public String getFirstName() ...{
return firstName;
}
![]()
/**//**
* @param firstName The firstName to set.
*/
![]()
public void setFirstName(String firstName) ...{
this.firstName = firstName;
}
![]()
/**//**
* @return Returns the lastName.
*/
![]()
public String getLastName() ...{
return lastName;
}
![]()
/**//**
* @param lastName The lastName to set.
*/
![]()
public void setLastName(String lastName) ...{
this.lastName = lastName;
}
}
