struts2+hibernate3.2+spring2.0整合篇(二)
来源:互联网 发布:大学宿舍网络怎么弄 编辑:程序博客网 时间:2024/05/17 08:38
在上篇文章中,我们已经把struts2+hibernate3.2+spring2.0的开发环境搭建成功,这篇我们接着上篇,继续讲解struts2+hibernate3.2+spring2.0的整合过程。
步骤二:在MySQL数据库中创建数据库、数据表,建表语句:
create database mytest;use mytest;CREATE TABLE users ( id int(11) NOT NULL, firstname varchar(50) NOT NULL, lastname varchar(50) NOT NULL, age int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;在此我们需要说明各层之间的调用关系,action层-->service层-->dao层,调用关系我们在spring中配置。
步骤三:创建hibernate对数据表的持久层访问。
在com.tgb.bean包中创建User.java和User.hbm.xml文件,建立User对象和数据表users的映射。
User.java
package com.tgb.bean;public class User {private Integer id;private String firstname;private String lastname;private int age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getFirstname() {return firstname;}public void setFirstname(String firstname) {this.firstname = firstname;}public String getLastname() {return lastname;}public void setLastname(String lastname) {this.lastname = lastname;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}User.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.tgb.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>步骤四:创建操作User对象的接口和实现类。
在com.tgb.dao中创建操作User对象的接口
UserDAO.java
package com.tgb.dao;import java.util.List;import com.tgb.bean.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);}在com.tgb.dao.impl中创建操作User对象的接口实现类
UserDAOImpl.java
package com.tgb.dao.impl;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.tgb.bean.User;import com.tgb.dao.UserDAO;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);}public User findUserById(Integer id) {User user = (User) this.getHibernateTemplate().get(User.class, id);return user;}public void removeUser(User user) {this.getHibernateTemplate().delete(user);}public void saveUser(User user) {this.getHibernateTemplate().save(user);}public void updateUser(User user) {this.getHibernateTemplate().update(user);}}步骤五:创建service层的接口和实现类
在com.tgb.service中创建调用UserDAO的接口
UserService.java
package com.tgb.service;import java.util.List;import com.tgb.bean.User;public interface UserService {public List<User> findAll();public void save(User user);public void delete(User user);public User findUserById(Integer id);public void update(User user);}在com.tgb.service.impl中创建调用UserDAO的接口实现类
UserServiceImpl.java
package com.tgb.service.impl;import java.util.List;import com.tgb.bean.User;import com.tgb.dao.UserDAO;import com.tgb.service.UserService;public class UserServiceImpl implements UserService {private UserDAO userDao;public UserDAO getUserDao() {return userDao;}public void setUserDao(UserDAO userDao) {this.userDao = userDao;}public void delete(User user) {this.userDao.removeUser(user);}public List<User> findAll() {return this.userDao.findAllUsers();}public User findUserById(Integer id) {return this.findUserById(id);}public void save(User user) {this.userDao.saveUser(user);}public void update(User user) {this.userDao.updateUser(user);}}步骤六:创建action层的对于SavaUser和ListUser的处理类。
SaveUserAction.java
package com.tgb.action.user;import com.opensymphony.xwork2.ActionSupport;import com.tgb.bean.User;import com.tgb.service.UserService;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;}@Overridepublic String execute() throws Exception {this.userService.save(this.user);return SUCCESS;}}ListUserAction.java
package com.tgb.action.user;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.tgb.service.UserService;public class ListUserAction extends ActionSupport {private UserService userService;public UserService getUserService() {return userService;}public void setUserService(UserService userService) {this.userService = userService;}@Overridepublic String execute() throws Exception {Map request = (Map) ActionContext.getContext().get("request");request.put("list", userService.findAll());return SUCCESS;}}步骤七:创建用于保存用户的save.jsp页面和显示用户的list.jsp页面。
save.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%@ taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>Save User</title></head><body><h1><font color="red">Operation List</font></h1><s:form action="saveUser"><s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield><s:textfield name="user.lastname" label="%{getText('lastname')}"></s:textfield><s:textfield name="user.age" label="age"></s:textfield><s:submit></s:submit></s:form></body></html>list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>List User</title></head><body><h1><font color="red"><center>Users List</center> </font></h1><table><tr><td>序号</td><td>姓</td><td>名</td><td>年龄</td><td>删除</td><td>更新</td></tr><s:iterator value="#request.list" id="us"><tr><td><s:property value="#us.id" /></td><td><s:property value="#us.firstname" /></td><td><s:property value="#us.lastname" /></td><td><s:property value="#us.age" /></td><td><s:a href="deleteUser.action?user.id=%{#us.id}">delete</s:a></td><td><s:a href="updatePUser.action?user.id=%{#us.id}">update</s:a></td></tr></s:iterator></table></body></html>到此,各层之间的接口和实现类已经创建完毕,下篇我们将讲解如何通过spring管理类之间的依赖关系。
0 0
- struts2+hibernate3.2+spring2.0整合篇(二)
- struts2+hibernate3.2+spring2.0整合篇
- struts2+hibernate3.2+spring2.0整合篇(一)
- struts2+hibernate3.2+spring2.0整合篇(三)
- Spring2.5+Struts2+ Hibernate3整合之二
- Spring2.5+Struts2+ Hibernate3整合之二
- Struts2+Spring2+Hibernate3整合
- s2sh整合实例 Struts2.0 Spring2.6 Hibernate3.2
- Struts2.0+Spring2.0+Hibernate3.1整合
- Struts2+hibernate3.0+spring2.0整合
- struts2.0+spring2.0+hibernate3.1整合
- 整合spring2.5+hibernate3+struts2.0
- Spring2.5.3+Hibernate3.2+Struts2.0.11整合
- 整合Spring2.5+Struts2.1+Hibernate3.2
- Struts2.1.6 + Spring2.5+Hibernate3.2整合
- struts2 +hibernate3.2+spring2.0
- 关于整合Struts2+Spring2+ Hibernate3
- Struts2+Spring2+Hibernate3 整合开发
- Android 向J2ee提交请求出现乱码问题
- C++的Json解析库:jsoncpp和boost .
- javascript字符串长度验证
- 上机作业人品计算器
- 尼克斯彻定理
- struts2+hibernate3.2+spring2.0整合篇(二)
- Android基础——NinePatch点九图片
- Qt源码之事件处理
- 用Hadoop和MapReduce进行大数据分析
- 应用层的AIDL用法(转载)
- Fiddler 教程
- eclipse快捷键补课
- eclipse 配置c/c++环境
- 表单注册