首页 > 代码库 > SSH未成熟版
SSH未成熟版
本实验采用Spring中配置Action,Spring代理生成Struts的类
-->Dept.java
package cn.itcast.domain;
public class Dept {
private Integer id;
private String deptno;
private String deptname;
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
-->Dept.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="cn.itcast.domain.Dept" table="dept">
<id name="id" column="dept_id">
<generator class="native"></generator>
</id>
<!-- 普通属性 -->
<property name="deptno"></property>
<property name="deptname"></property>
</class>
</hibernate-mapping>
--> Student
package cn.itcast.domain;
import java.util.Date;
public class Student {
private Integer id;
private String number;// 学生学号
private String name;// 姓名
private String deptno;// 所在院系编号
private String sex;// 学生性别
private Date birthday;// 学生出生日期
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDeptno() {
return deptno;
}
public void setDeptno(String deptno) {
this.deptno = deptno;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Student [id=" + id + ", number=" + number + ", name=" + name
+ ", deptno=" + deptno + ", sex=" + sex + ", birthday="
+ birthday + "]";
}
}
--> Student.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="cn.itcast.domain.Student" table="Student">
<id name="id" column="student_id">
<generator class="native"></generator>
</id>
<!-- 普通属性 -->
<property name="number" length="32"/>
<property name="name" length="32"/>
<property name="deptno" length="32"/>
<property name="sex" length="2"/>
<property name="birthday"/>
</class>
</hibernate-mapping>
-->StudentDao.java
package cn.itcast.dao;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import cn.itcast.domain.Student;
import cn.itcast.util.HibernateUtil;
public class StudentDao {
private int pageSize;
private int page;
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public List<Student> selectStudentByXing(String name){
Session session = HibernateUtil.getSession();
Criteria criteria =session.createCriteria(Student.class);
criteria.add(Restrictions.like("name",name+"%"));
return criteria.list();
}
public List<Student> selectStudent(Student student) {
Session session = HibernateUtil.getSession();
Query query = session
.createQuery("from Student as student where student.name = :name");
query.setParameter("name", student.getName());
List s = query.list();
return s;
}
public List<Student> selectStudentIterate() {
Session session = HibernateUtil.getSession();
Query query = session.createQuery("from Student");
query.setFirstResult((page - 1) * pageSize);
query.setMaxResults(pageSize);
List<Student> list = new ArrayList<Student>();
Iterator students = query.iterate();
while (students.hasNext()) {
Student student = (Student) students.next();
list.add(student);
}
return list;
}
public List<Student> selectStudentList() {
Session session = HibernateUtil.getSession();
Query query = session.createQuery("from Student");
query.setFirstResult((page - 1) * pageSize);
query.setMaxResults(pageSize);
return query.list();
}
}
--> StudentDeptDao.java
package cn.itcast.dao;
/*
* 可加pagesize
* pageCount控制每页显示的多少
*/
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import cn.itcast.util.HibernateUtil;
public class StudentDeptDao {
public List selectStudentDept() {
Session session = HibernateUtil.getSession();
Query q = session
.createQuery("from Student s , Dept d where s.deptno = d.deptno");
List l = q.list();
return l;
}
}
-->StudentService
package cn.itcast.service;
import java.util.List;
import cn.itcast.dao.StudentDao;
import cn.itcast.domain.Student;
public class StudentService {
private StudentDao studentDao;
public List<Student> selectStudent(Student student) {
studentDao=new StudentDao();
return studentDao.selectStudent(student);
}
public List<Student> selectStudentIterate() {
studentDao=new StudentDao();
return studentDao.selectStudentIterate();
}
public List<Student> selectStudentList() {
studentDao=new StudentDao();
return studentDao.selectStudentList();
}
public List<Student> selectStudentListByXing(String name) {
studentDao=new StudentDao();
return studentDao.selectStudentByXing(name);
}
public StudentDao getStudentDao() {
return studentDao;
}
public void setStudentDao(StudentDao studentDao) {
this.studentDao = studentDao;
}
}
-->StudentDeptService
package cn.itcast.service;
import java.util.List;
import cn.itcast.dao.StudentDeptDao;
public class StudentDeptService {
private StudentDeptDao studentDeptDao;
public StudentDeptDao getStudentDeptDao() {
return studentDeptDao;
}
public void setStudentDeptDao(StudentDeptDao studentDeptDao) {
this.studentDeptDao = studentDeptDao;
}
public List selectStudentDept() {
return studentDeptDao.selectStudentDept();
}
}
-->StudentAction
package cn.itcast.action;
àStudentAction
import java.util.List;
import cn.itcast.domain.Student;
import cn.itcast.service.StudentService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class StudentAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private StudentService studentService;
private String name;
public StudentService getStudentService() {
return studentService;
}
public void setStudentService(StudentService studentService) {
this.studentService = studentService;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String execute() throws Exception {
System.out.println(name);
List<Student> sdlistxing = studentService.selectStudentListByXing(name);
if (sdlistxing.size() > 0) {
ActionContext.getContext().put("sdlistxing", sdlistxing);
return SUCCESS;
} else {
return ERROR;
}
}
}
-->StudentDeptAction
package cn.itcast.action;
import java.util.List;
import cn.itcast.service.StudentDeptService;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class StudentDeptAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private StudentDeptService studentDeptService;
public StudentDeptService getStudentDeptService() {
return studentDeptService;
}
public void setStudentDeptService(StudentDeptService studentDeptService) {
this.studentDeptService = studentDeptService;
}
@Override
public String execute() throws Exception {
List sdlist = studentDeptService.selectStudentDept();
if (sdlist.size() > 0) {
ActionContext.getContext().put("sdlist", sdlist);
return SUCCESS;
} else {
return ERROR;
}
}
}
-->showAllStudentDept.jsp
<%@ page language="java" import="java.util.*,cn.itcast.domain.*"
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>
<title>show all student</title>
</head>
<body>
<form action="" method="post">
<table border="1" bordercolor="green" cellspacing="0" width="500px">
<tr>
<td colspan="6" align="center"><b>所有学生信息</b></td>
</tr>
<tr>
<th>学 号</th>
<th>姓 名</th>
<th>性 别</th>
<th>生 日</th>
<th>系编号</th>
<th>系名称</th>
</tr>
<s:iterator value=http://www.mamicode.com/"sdlist" var="sd">
<tr>
<!--输出List<Object[]> -->
<td><s:property value=http://www.mamicode.com/"#sd[0].number" /></td>
<td><s:property value=http://www.mamicode.com/"#sd[0].name" /></td>
<td><s:property value=http://www.mamicode.com/"#sd[0].sex" /></td>
<td><s:property value=http://www.mamicode.com/"#sd[0].birthday" /></td>
<td><s:property value=http://www.mamicode.com/"#sd[1].deptno" /></td>
<td><s:property value=http://www.mamicode.com/"#sd[1].deptname" /></td>
<td>
</tr>
</s:iterator>
</table>
</form>
<a href=http://www.mamicode.com/"<%=basePath%>/welcome.jsp">返回主界面</a>
</body>
</html>
-->showAllStudentByXing.jsp
<%@ page language="java" import="java.util.*,cn.itcast.domain.*"
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>
<title>show all student</title>
</head>
<body>
<form action="" method="post">
<table border="1" bordercolor="green" cellspacing="0" width="500px">
<tr>
<td colspan="6" align="center"><b>所有学生信息</b></td>
</tr>
<tr>
<th>id</th>
<th>姓 名</th>
<th>学 号</th>
<th>性 别</th>
<th>生日</th>
</tr>
<s:iterator value=http://www.mamicode.com/"sdlistxing" var="sdx">
<tr>
<td><s:property value=http://www.mamicode.com/"#sdx.id" /></td>
<td><s:property value=http://www.mamicode.com/"#sdx.number" /></td>
<td><s:property value=http://www.mamicode.com/"#sdx.name" /></td>
<td><s:property value=http://www.mamicode.com/"#sdx.deptno" /></td>
<td><s:property value=http://www.mamicode.com/"#sdx.sex" /></td>
<td><s:property value=http://www.mamicode.com/"#sdx.birthday" /></td>
<td>
</tr>
</s:iterator>
</table>
</form>
<a href=http://www.mamicode.com/"<%=basePath%>/welcome.jsp">返回主界面</a>
</body>
</html>
--> hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<!-- 配置驱动 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibe1</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 是否根据hbm文件生成数据库 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 是否打印sql语句 -->
<property name="show_sql">true</property>
<!-- C3P0连接池设定 -->
<!-- 使用c3po连接池 配置连接池提供的供应商 -->
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider </property>
<!-- 配置方言. -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="cn/itcast/domain/Dept.hbm.xml" />
<mapping resource="cn/itcast/domain/Student.hbm.xml" />
</session-factory>
</hibernate-configuration>
-->struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value=http://www.mamicode.com/"false" />
<constant name="struts.i18n.encoding" value=http://www.mamicode.com/"utf-8" />
<constant name="struts.objectFactory" value=http://www.mamicode.com/"spring" />
<package name="test" namespace="/" extends="struts-default">
<action name="sddall" class="cn.itcast.action.StudentDeptAction">
<result>/showAllStudentDept.jsp</result>
<result name="error">/showAllStudentDeptError.jsp</result>
</action>
</package>
<package name="test2" namespace="/" extends="struts-default">
<action name="showbyxing" class="cn.itcast.action.StudentAction">
<result>/showAllStudentByXing.jsp</result>
<result name="error">/showAllStudentByXingError.jsp</result>
</action>
à applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<!-- 配置Action -->
<bean id="StudentDeptAction" class="cn.itcast.action.StudentDeptAction"
scope="prototype">
<property name="studentDeptService" ref="studentDeptService" />
</bean>
<bean id="studentDeptService" class="cn.itcast.service.StudentDeptService">
<property name="studentDeptDao" ref="studentDeptDao"></property>
</bean>
<bean id="studentDeptDao" class="cn.itcast.dao.StudentDeptDao"></bean>
<!-- 配置Action -->
<bean id="StudentAction" class="cn.itcast.action.StudentAction"
scope="prototype">
<property name="studentService" ref="studentService" />
</bean>
<bean id="studentService" class="cn.itcast.service.StudentService">
<property name="studentDao" ref="studentDao"></property>
</bean>
<bean id="studentDao" class="cn.itcast.dao.StudentDao"></bean>
</beans>
数据库脚本:
后台数据库:
数据库脚本:
-- --------------------------------------------------------
-- 主机: 127.0.0.1
-- 服务器版本: 5.5.36-MariaDB - mariadb.org binary distribution
-- 服务器操作系统: Win32
-- HeidiSQL 版本: 8.0.0.4396
-- --------------------------------------------------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;
-- 导出 hibe1 的数据库结构
CREATE DATABASE IF NOT EXISTS `hibe1` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `hibe1`;
-- 导出 表 hibe1.dept 结构
CREATE TABLE IF NOT EXISTS `dept` (
`dept_id` int(11) NOT NULL AUTO_INCREMENT,
`deptno` varchar(255) DEFAULT NULL,
`deptname` varchar(255) DEFAULT NULL,
PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;
-- 正在导出表 hibe1.dept 的数据:~2 rows (大约)
DELETE FROM `dept`;
/*!40000 ALTER TABLE `dept` DISABLE KEYS */;
INSERT INTO `dept` (`dept_id`, `deptno`, `deptname`) VALUES
(1, ‘d01‘, ‘计算机‘),
(2, ‘d02‘, ‘数学‘);
/*!40000 ALTER TABLE `dept` ENABLE KEYS */;
-- 导出 表 hibe1.student 结构
CREATE TABLE IF NOT EXISTS `student` (
`student_id` int(11) NOT NULL AUTO_INCREMENT,
`number` varchar(32) DEFAULT NULL,
`name` varchar(32) DEFAULT NULL,
`deptno` varchar(32) DEFAULT NULL,
`sex` varchar(2) DEFAULT NULL,
`birthday` datetime DEFAULT NULL,
PRIMARY KEY (`student_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1134110143 DEFAULT CHARSET=utf8;
-- 正在导出表 hibe1.student 的数据:~3 rows (大约)
DELETE FROM `student`;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT INTO `student` (`student_id`, `number`, `name`, `deptno`, `sex`, `birthday`) VALUES
(1134110140, ‘s001‘, ‘陈新卫‘, ‘d01‘, ‘男‘, ‘2014-04-23 15:20:02‘),
(1134110141, ‘s002‘, ‘张三‘, ‘d02‘, ‘男‘, ‘1992-03-13 15:19:41‘),
(1134110142, ‘s003‘, ‘张三‘, ‘d02‘, ‘男‘, ‘1992-03-13 15:19:41‘);
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, ‘‘) */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;