1.Action:Action类是用户请求和业务逻辑之间的桥梁,每个Action充当客户的一项业务代理;Action类都要继承 ActionSupport 实现接口ModelDriven;
ModelDriven接口要重写getModel()方法例如:
public class UserAction extends ActionSupport implements ModelDriven<User> {
private static final long serialVersionUID = 1L;
private User user = new User();
private UserService userService;
@Override
public User getModel() {
return user;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public UserService getUserService() {
return userService;
}
Service:service层:能够更加清晰的定义应用程序的边界,需要操作数据的时候,通过service层访问DAO层来实现 例:
@Transactional
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
//@Transactional加上了,代表这个类会被Spring操作或者声明,具体的//操作根据 //@Transactional的内容而定。
//不加上当然Spring就不会自动识别了,需要IOC反向控制一下
DAO层:数据访问层,对数据库进行访问,操作数据库。
例:
public class UserDao extends HibernateDaoSupport {
/**
* 判断有无username
*
* @param username
* @return
*/
public User findByUsername(String username) {
String hql = "from User where username = ?";
List<User> list = this.getHibernateTemplate().find(hql, username);
if (list != null && list.size() > 0) {
return list.get(0);
}
return null;
}
Vo层:它们是由一组属性和属性的get和set方法组成。可以看成是与数据库中的表相映射的java对象
列:
public class User {
private String username;
private String pwd;
private String cellphone;
private String nickName;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getCellphone() {
return cellphone;
}
public void setCellphone(String cellphone) {
this.cellphone = cellphone;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
在vo包下除了user外还要写一个user.hbm.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="user.vo.User" table="user">
//table 数据库名称
//name: 文件所在的路径
<id name="username">
<generator class="assigned" />
//主键
</id>
<property name="pwd" />//普通列
<property name="cellphone" />
<property name="nickName" />
</class>
</hibernate-mapping>
最后在applicationContext.xml中进行配置:
`<!-- Dao配置 ==================================================== -->
<bean id="userDao" class="user.dao.UserDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>`
<!--Servicen配置 ==================================================== -->
<bean id="userService" class="user.service.UserService">
<property name="userDao" ref="userDao" />
</bean>
<!-- Action的配置 ============================== ======================-->
<bean id="userAction" class="user.action.UserAction">
<property name="userService" ref="userService" />
</bean>
//在id="dataSource"的bean中配置User.hbm.xml:
<property name="mappingResources">
<list>
<value>user/vo/user.hbm.xml</value>
</list>
</property>