【2】SSH整合-分层代码实现
来源:互联网 发布:拍照打字软件 编辑:程序博客网 时间:2024/05/16 12:11
接着开始进行编码
【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>
- 【2】SSH整合-分层代码实现
- ssh分层
- ssh+jbpm整合代码示例
- SSH整合之分页实现
- 注解方式实现SSH整合
- 使用struts实现SSH整合
- SSH 整合2
- ssh整合错误2
- SSH整合2
- 浅谈ssh整合2
- 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.2
- 整合asp.net mvc4,Spring.net,nhibernate实现分层开发
- SSH整合实例代码含jar包
- SpringBoot整合Mybatis(分层整合)
- SOA-SSH分层架构
- ssh分层架构
- SSH 中的分层结构
- SSH分层设计
- 唐骏
- 网络开始的那点事
- Hibernate 学习3
- 【1】SSH整合-基本环境配置
- 何老师日志 给正在实习或者将要实习的人【转】
- 【2】SSH整合-分层代码实现
- 最苦的日子只能独自走过
- [转]告别工具条图标失真的烦恼
- 程序员的误区1:软件开发职业是青春饭
- js记录次数代码
- js祝福词跟随鼠标代码
- js时钟源码
- 初来乍到
- const_iterator 和 const..iterator