【2】SSH整合-分层代码实现
2009-07-23 18:31
369 查看
接着开始进行编码
【1】新建javabean,以user类为模板,
public class User {
private Integer id;
private String firstname;
private String lastname;
private int age; ……
}
为每个属性生成get和set方法,这是spring要使用所必须的,以后要使用的类也一样
同时为此基本的Bean配置和编写此bean和数据库的映射文件,文件名为user.hbm.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="oa.sean.bean.User" table="users">
<id name="id" type="java.lang.Integer" column="id">
<generator class="increment"></generator>
</id>
<property name="firstname" type="string" column="firstname" length="50"></property>
<property name="lastname" type="string" column="lastname" length="50"></property>
<property name="age" type="java.lang.Integer" column="age" ></property>
</class>
</hibernate-mapping>
【2】为struts添加国际化标准
在src中新建struts.properties 内容为struts.custom.i18n.resources=globalMessages
同时也在相同目录下新建globalMessages-en.properties和globalMessages-zh.properties文件
以zh文件内容为例
firstname=/u59d3
lastname=/u540d
age=/u5e74/u9f84
这样在以后页面当中使用如果浏览器的语言是中文的话就可以以中文的方式进行显示,英文的话则按照en的配置文件进行显示
当然要修改相应的页面标签,如下
<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
【3】新建user的dao操作
创建一个user的接口
public interface UserDAO {
public void saveUser(User user);
public void removeUser(User user);
public User findUserById(Integer id);
public List<User> findAllUsers();
public void updateUser(User user);
}
之后定义一个impl类来实现此接口中的方法
部分代码如下:
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
@SuppressWarnings("unchecked")
public List<User> findAllUsers() {
//是类名,不是表名
String hql="from User user order by user.id desc";
return (List<User>)this.getHibernateTemplate().find(hql);
}……
}
可以使用hibernate中提供的方法来简化数据库的操作
【4】创建服务层代码
dao操作不能直接被action调用,要在中间添加服务层
新建一个service的接口
public interface UserService {
//action 和 dao之间要加入此服务层
public List<User> findAll();
public void save(User user);
public void delete(User user);
public User findById(Integer id);
public void update(User user);
}
与dao类似,实现此接口
public class UserServiceImpl implements UserService {
private UserDAO userDao;
//要让spring进行注入要设置get和set方法
public UserDAO getUserDao() {
return userDao;
}
public void setUserDao(UserDAO userDao) {
this.userDao = userDao;
}
……
}
在此编写中服务层代码只是简单调用dao方法
服务依赖于spring将其注入,再调用dao进行操作
【5】编写action方法中的execute方法
public class SaveUserAction extends ActionSupport {
private User user;
private UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
this.userService.save(user);
return SUCCESS;
}
}
在action中调用服务层的方法进行保存
【6】配置文件
struts.xml是控制前台控制的扭转
spring的则是bean之间的依赖关系和注入关系
<struts>
<package name="user" extends="struts-default">
<action name="saveUser" class="saveUserAction">
<result name="success" type="redirect">listUser.action</result>
<result name="input">/save.jsp</result>
</action>
</package>
</struts>
【1】新建javabean,以user类为模板,
public class User {
private Integer id;
private String firstname;
private String lastname;
private int age; ……
}
为每个属性生成get和set方法,这是spring要使用所必须的,以后要使用的类也一样
同时为此基本的Bean配置和编写此bean和数据库的映射文件,文件名为user.hbm.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="oa.sean.bean.User" table="users">
<id name="id" type="java.lang.Integer" column="id">
<generator class="increment"></generator>
</id>
<property name="firstname" type="string" column="firstname" length="50"></property>
<property name="lastname" type="string" column="lastname" length="50"></property>
<property name="age" type="java.lang.Integer" column="age" ></property>
</class>
</hibernate-mapping>
【2】为struts添加国际化标准
在src中新建struts.properties 内容为struts.custom.i18n.resources=globalMessages
同时也在相同目录下新建globalMessages-en.properties和globalMessages-zh.properties文件
以zh文件内容为例
firstname=/u59d3
lastname=/u540d
age=/u5e74/u9f84
这样在以后页面当中使用如果浏览器的语言是中文的话就可以以中文的方式进行显示,英文的话则按照en的配置文件进行显示
当然要修改相应的页面标签,如下
<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
【3】新建user的dao操作
创建一个user的接口
public interface UserDAO {
public void saveUser(User user);
public void removeUser(User user);
public User findUserById(Integer id);
public List<User> findAllUsers();
public void updateUser(User user);
}
之后定义一个impl类来实现此接口中的方法
部分代码如下:
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
@SuppressWarnings("unchecked")
public List<User> findAllUsers() {
//是类名,不是表名
String hql="from User user order by user.id desc";
return (List<User>)this.getHibernateTemplate().find(hql);
}……
}
可以使用hibernate中提供的方法来简化数据库的操作
【4】创建服务层代码
dao操作不能直接被action调用,要在中间添加服务层
新建一个service的接口
public interface UserService {
//action 和 dao之间要加入此服务层
public List<User> findAll();
public void save(User user);
public void delete(User user);
public User findById(Integer id);
public void update(User user);
}
与dao类似,实现此接口
public class UserServiceImpl implements UserService {
private UserDAO userDao;
//要让spring进行注入要设置get和set方法
public UserDAO getUserDao() {
return userDao;
}
public void setUserDao(UserDAO userDao) {
this.userDao = userDao;
}
……
}
在此编写中服务层代码只是简单调用dao方法
服务依赖于spring将其注入,再调用dao进行操作
【5】编写action方法中的execute方法
public class SaveUserAction extends ActionSupport {
private User user;
private UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
this.userService.save(user);
return SUCCESS;
}
}
在action中调用服务层的方法进行保存
【6】配置文件
struts.xml是控制前台控制的扭转
spring的则是bean之间的依赖关系和注入关系
<struts>
<package name="user" extends="struts-default">
<action name="saveUser" class="saveUserAction">
<result name="success" type="redirect">listUser.action</result>
<result name="input">/save.jsp</result>
</action>
</package>
</struts>
相关文章推荐
- screen实现关闭ssh之后继续运行代码
- ssh批量登录并执行命令的python实现代码
- IDEA maven SSH Oracle 整合实现简易用户登录
- ext+ssh中tree的实现完整代码
- 基于SSH实现管理系统之框架整合篇
- Spring整合Quartz实现动态定时器的示例代码
- (一)基于SSH实现员工管理系统之框架整合篇
- java SSH三大框架整合,实现了泛型baseAction,泛型baseService,泛型baseDao
- SSH整合之分页实现
- SSH项目整合实现Ajax注册用户验证
- SSH整合中为获取表单对象Action类实现的接口及拦截器配置
- ssh整合问题总结--在添加商品模块实现图片(文件)的上传
- 整合Spring MVC,mybatis,hibernate,freemarker框架实现的自定义注解Validator验证机制实现对敏感词过滤的代码分享
- 总结SSH代码整合过程中的乱码问题
- springboot整合shiro登录失败次数限制功能的实现代码
- [ 代码管理 ] GITEE 码云利用ssh快速实现代码同步管理
- ssh整合问题总结--使用HibernateTemplate实现数据分页展示
- Shiro整合SSH开发2:结合Struts2实现登陆和退出以及Shiro执行流程和原理解析
- Mybatis运用mapper代码实现和Spring的整合(一)
- SSH整合主要XML代码