您的位置:首页 > 编程语言 > Java开发

搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)

2017-02-07 15:33 621 查看


搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)

我以我做的一个例子来说明框架的搭建过程 ^V^!

项目结构如图:

action:存放Action类,也就是控制类

dao:DAO数据库操作

po:POJO类,也就是持久化类

service:存放Service类

dao类在Service类里调用,然后Service类再到action类里调用



搭建过程

我们先要准备jar价包,这个可以去官网下载

下面是我准备的开发jar价包



然后我为了提高安全性,我将所有的JSP页面放在了WEB-INF下面



然后配置SSH的配置文件

Spring的配置文件代码:

[html] view
plain copy print?





<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"> <!-- Spring框架配置文件 -->
<!-- 属性注入配置 -->
<context:annotation-config/>
<!-- 实现数据库配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/db_sgdata?useUnicode=true&characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value="111"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="60"></property>
<property name="maxWait" value="10000"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!-- 开启Spring框架的事务管理 ,开启之后@Transaction就可以用了 -->
<tx:annotation-driven transaction-manager="txManager"/>

<!-- 实现教师信息管理需要配置的Bean -->
<bean id="teacherDao" class="com.sgdata.dao.impl.TeacherDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="teacherService" class="com.sgdata.service.impl.TeacherServiceBean">
</bean>
<!--scope默认采用的是单例模式,scope="prototype" 可以保证 当有请求的时候都创建一个Action对象,保证Struts的Action线程安全 -->
<bean id="teacherAction" class="com.sgdata.action.TeacherInfoManagerAction" scope="prototype"></bean>
<bean id="loginCheckAction" class="com.sgdata.action.LoginCheckAction" scope="prototype"></bean>

<!-- 实现学生信息管理需要配置的Bean -->
<bean id="studentDao" class="com.sgdata.dao.impl.StudentDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="studentService" class="com.sgdata.service.impl.StudentServiceBean"></bean>
<bean id="studentAction" class="com.sgdata.action.StudentInfoManagerAction" scope="prototype"></bean>

<!-- 实现课程信息管理需要配置的Bean -->
<bean id="courseDao" class="com.sgdata.dao.impl.CourseDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="courseService" class="com.sgdata.service.impl.CourseServiceBean"></bean>
<bean id="courseAction" class="com.sgdata.action.CourseInfoManagerAction" scope="prototype"></bean>

<!-- 实现比赛信息管理需要配置的Bean -->
<bean id="matchDao" class="com.sgdata.dao.impl.MatchDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="matchService" class="com.sgdata.service.impl.MatchServiceBean"></bean>
<bean id="matchAction" class="com.sgdata.action.MatchInfoManagerAction" scope="prototype"></bean>

</beans>


[code;'><?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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd"> <!-- Spring框架配置文件 --> <!-- 属性注入配置 --> <context:annotation-config/> <!-- 实现数据库配置 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/db_sgdata?useUnicode=true&characterEncoding=UTF-8"></property> <property name="username" value="root"></property> <property name="password" value="111"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="60"></property> <property name="maxWait" value="10000"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:hibernate.cfg.xml"></property> </bean> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <!-- 开启Spring框架的事务管理 ,开启之后@Transaction就可以用了 --> <tx:annotation-driven transaction-manager="txManager"/> <!-- 实现教师信息管理需要配置的Bean --> <bean id="teacherDao" class="com.sgdata.dao.impl.TeacherDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="teacherService" class="com.sgdata.service.impl.TeacherServiceBean"> </bean> <!--scope默认采用的是单例模式,scope="prototype" 可以保证 当有请求的时候都创建一个Action对象,保证Struts的Action线程安全 --> <bean id="teacherAction" class="com.sgdata.action.TeacherInfoManagerAction" scope="prototype"></bean> <bean id="loginCheckAction" class="com.sgdata.action.LoginCheckAction" scope="prototype"></bean> <!-- 实现学生信息管理需要配置的Bean --> <bean id="studentDao" class="com.sgdata.dao.impl.StudentDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="studentService" class="com.sgdata.service.impl.StudentServiceBean"></bean> <bean id="studentAction" class="com.sgdata.action.StudentInfoManagerAction" scope="prototype"></bean> <!-- 实现课程信息管理需要配置的Bean --> <bean id="courseDao" class="com.sgdata.dao.impl.CourseDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="courseService" class="com.sgdata.service.impl.CourseServiceBean"></bean> <bean id="courseAction" class="com.sgdata.action.CourseInfoManagerAction" scope="prototype"></bean> <!-- 实现比赛信息管理需要配置的Bean --> <bean id="matchDao" class="com.sgdata.dao.impl.MatchDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="matchService" class="com.sgdata.service.impl.MatchServiceBean"></bean> <bean id="matchAction" class="com.sgdata.action.MatchInfoManagerAction" scope="prototype"></bean> </beans>


Struts2的配置文件代码:

[html] view
plain copy print?





<?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">
<!-- Struts2框架配置文件 -->
<struts>
<!-- 配置struts2可以受理的请求扩展名 -->
<constant name="struts.action.extension" value="action,do,"></constant>
<!-- struts2的package对应于项目的模块 -->
<package name="action" extends="struts-default" namespace="/">
<!-- 配置action -->

<!-- 登录验证的Action -->
<action name="loginAction" class="loginCheckAction">
<result name="success">/WEB-INF/page/admin/index.jsp</result>
<result name="input">/WEB-INF/page/admin/login.jsp</result>
</action>

<!--
SSH项目WEB-INF下面的页面跳转要通过Servlet来实现,这样确实是麻烦了点,
不过安全性就提高上去了,因为放在WEB-INF下面的JSP页面,是不可以直接访问的
-->
<action name="indexAction">
<result>/WEB-INF/page/admin/index.jsp</result>
</action>
<action name="gotoLoginAction">
<result>/WEB-INF/page/admin/login.jsp</result>
</action>

<!-- 学生信息管理的Action -->
<action name="getAllStuInfoAction" class="studentAction" method="getAllInfo">
<result name="success">/WEB-INF/page/admin/student/studentInfoManager.jsp</result>
</action>
<action name="getStuInfoByIdAction" class="studentAction" method="getInfoById">
<result name="success">/WEB-INF/page/admin/student/studentInfoDetail.jsp</result>
</action>
<action name="getLearnScoresAction" class="studentAction" method="getLearnScoreById">
<result name="success">/WEB-INF/page/admin/student/studentLearnScores.jsp</result>
</action>
<action name="getMatchScoresAction" class="studentAction" method="getMatchScoreById">
<result name="success">/WEB-INF/page/admin/student/studentMatchScores.jsp</result>
</action>

<!-- 教师信息管理的Action -->
<action name="getAllTeaInfoAction" class="teacherAction" method="getAllInfo">
<result name="success">/WEB-INF/page/admin/teacher/teacherInfoManager.jsp</result>
</action>
<action name="getTeachingInfoAction" class="teacherAction" method="getTeachingInfoById">
<result name="success">/WEB-INF/page/admin/teacher/teacherTeaching.jsp</result>
</action>
<action name="getMatchGuideInfoAction" class="teacherAction" method="getMatchGuideInfoById">
<result name="success">/WEB-INF/page/admin/teacher/teacherMatchGuide.jsp</result>
</action>
<action name="getCourseStudentsInfoAction" class="teacherAction" method="getCourseStudentsInfoById">
<result name="success">/WEB-INF/page/admin/teacher/teacherCourseStusInfo.jsp</result>
</action>
<action name="getMatchStudentsInfoAction" class="teacherAction" method="getMatchStudentsInfoById">
<result name="success">/WEB-INF/page/admin/teacher/teacherMatchStusInfo.jsp</result>
</action>

<!-- 课程管理的Action -->
<action name="getAllCourseInfoAction" class="courseAction" method="getAllInfo">
<result name="success">/WEB-INF/page/admin/course/courseManager.jsp</result>
</action>
<action name="getTeachersInfoAction" class="courseAction" method="getTeachersInfoById">
<result name="success">/WEB-INF/page/admin/course/courseTeachersInfo.jsp</result>
</action>

<!-- 比赛信息管理的Action -->
<action name="getAllMatchInfoAction" class="matchAction" method="getAllInfo">
<result name="success">/WEB-INF/page/admin/match/matchInfoManager.jsp</result>
</action>
<action name="getStudentsInfoAction" class="matchAction" method="getStudentsInfoById">
<result name="success">/WEB-INF/page/admin/match/matchStudentsInfo.jsp</result>
</action>

</package>

</struts>
[/code;'>

<?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"> <!-- Struts2框架配置文件 --> <struts> <!-- 配置struts2可以受理的请求扩展名 --> <constant name="struts.action.extension" value="action,do,"></constant>     <!-- struts2的package对应于项目的模块 -->     <package name="action" extends="struts-default" namespace="/">      <!-- 配置action -->           <!-- 登录验证的Action -->      <action name="loginAction">      <result name="success">/WEB-INF/page/admin/index.jsp</result>      <result name="input">/WEB-INF/page/admin/login.jsp</result>      </action>           <!--  SSH项目WEB-INF下面的页面跳转要通过Servlet来实现,这样确实是麻烦了点, 不过安全性就提高上去了,因为放在WEB-INF下面的JSP页面,是不可以直接访问的   -->       <action name="indexAction">              <result>/WEB-INF/page/admin/index.jsp</result>         </action>         <action name="gotoLoginAction">        <result>/WEB-INF/page/admin/login.jsp</result>       </action>           <!-- 学生信息管理的Action -->      <action name="getAllStuInfoAction" method="getAllInfo">      <result name="success">/WEB-INF/page/admin/student/studentInfoManager.jsp</result>      </action>      <action name="getStuInfoByIdAction" method="getInfoById">      <result name="success">/WEB-INF/page/admin/student/studentInfoDetail.jsp</result>      </action>      <action name="getLearnScoresAction" method="getLearnScoreById">      <result name="success">/WEB-INF/page/admin/student/studentLearnScores.jsp</result>      </action>      <action name="getMatchScoresAction" method="getMatchScoreById">      <result name="success">/WEB-INF/page/admin/student/studentMatchScores.jsp</result>      </action>           <!-- 教师信息管理的Action -->      <action name="getAllTeaInfoAction" method="getAllInfo">      <result name="success">/WEB-INF/page/admin/teacher/teacherInfoManager.jsp</result>      </action>      <action name="getTeachingInfoAction" method="getTeachingInfoById">      <result name="success">/WEB-INF/page/admin/teacher/teacherTeaching.jsp</result>      </action>      <action name="getMatchGuideInfoAction" method="getMatchGuideInfoById">      <result name="success">/WEB-INF/page/admin/teacher/teacherMatchGuide.jsp</result>      </action>      <action name="getCourseStudentsInfoAction" method="getCourseStudentsInfoById">      <result name="success">/WEB-INF/page/admin/teacher/teacherCourseStusInfo.jsp</result>      </action>      <action name="getMatchStudentsInfoAction" method="getMatchStudentsInfoById">      <result name="success">/WEB-INF/page/admin/teacher/teacherMatchStusInfo.jsp</result>      </action>           <!-- 课程管理的Action -->      <action name="getAllCourseInfoAction" method="getAllInfo">      <result name="success">/WEB-INF/page/admin/course/courseManager.jsp</result>      </action>      <action name="getTeachersInfoAction" method="getTeachersInfoById">      <result name="success">/WEB-INF/page/admin/course/courseTeachersInfo.jsp</result>      </action>           <!-- 比赛信息管理的Action -->      <action name="getAllMatchInfoAction" method="getAllInfo">      <result name="success">/WEB-INF/page/admin/match/matchInfoManager.jsp</result>      </action>      <action name="getStudentsInfoAction" method="getStudentsInfoById">      <result name="success">/WEB-INF/page/admin/match/matchStudentsInfo.jsp</result>      </action>          </package>      </struts>


Hibernate的配置文件代码:

[html] view
plain copy print?





<?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">
<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>
<!-- Hibernate框架配置文件 -->
<session-factory>
<!-- 配置sql语句可以打印在控制台 -->
<property name="show_sql">true</property>
<!--创建SessionFactory对象时自动创建数据表  -->
<property name="hbm2ddl.auto">update</property>
<!-- 配置映射文件 -->
<mapping resource="com/sgdata/po/Course.hbm.xml"/>
<mapping resource="com/sgdata/po/Deptment.hbm.xml"/>
<mapping resource="com/sgdata/po/Match.hbm.xml"/>
<mapping resource="com/sgdata/po/Student.hbm.xml"/>
<mapping resource="com/sgdata/po/StudentCourse.hbm.xml"/>
<mapping resource="com/sgdata/po/StudentMatch.hbm.xml"/>
<mapping resource="com/sgdata/po/Teacher.hbm.xml"/>
<mapping resource="com/sgdata/po/TeacherCourse.hbm.xml"/>
<mapping resource="com/sgdata/po/TeacherMatch.hbm.xml"/>
</session-factory>

</hibernate-configuration>
[/code;'>

[code]<?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"> <!-- Generated by MyEclipse Hibernate Tools.                   --> <hibernate-configuration> <!-- Hibernate框架配置文件 --> <session-factory> <!-- 配置sql语句可以打印在控制台 --> <property name="show_sql">true</property> <!--创建SessionFactory对象时自动创建数据表  --> <property name="hbm2ddl.auto">update</property> <!-- 配置映射文件 --> <mapping resource="com/sgdata/po/Course.hbm.xml"/> <mapping resource="com/sgdata/po/Deptment.hbm.xml"/> <mapping resource="com/sgdata/po/Match.hbm.xml"/> <mapping resource="com/sgdata/po/Student.hbm.xml"/> <mapping resource="com/sgdata/po/StudentCourse.hbm.xml"/> <mapping resource="com/sgdata/po/StudentMatch.hbm.xml"/> <mapping resource="com/sgdata/po/Teacher.hbm.xml"/> <mapping resource="com/sgdata/po/TeacherCourse.hbm.xml"/> <mapping resource="com/sgdata/po/TeacherMatch.hbm.xml"/> </session-factory> </hibernate-configuration>


前面那些配置文件有包含其它的,这个要根据自己的项目需要去改的^V^

下面以学生信息管理的实现过程进行说明,只说明这个例子哈!

创建POJO实体类:

[java] view
plain copy print?





import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
*
* 学生信息的实体类
* @author Nicky
*
*/
public class Student {

/*
* 学号
*/
private String stuID;

/*
* 班级
*/
private String stuName;

/*
* 性别
*/
private String stuSex;

/*
* 出生年日
*/
private Date stuBirth;

/*
* 电话
*/
private String stuTel;

/*
* 邮箱
*/
private String stuEmail;

/*
* 专业
*/
private String dept;

/*
* 身份证
*/
private String stuIDCard;

/*
* 班级
*/
private String className;

/*
* 登录密码
*/
private String password;

/*
* 是否是管理员的标志  1表示是,0表示不是
*/
private String isManager;

public String getStuID() {
return stuID;
}

public void setStuID(String stuID) {
this.stuID = stuID;
}

public String getStuName() {
return stuName;
}

public void setStuName(String stuName) {
this.stuName = stuName;
}

public String getStuSex() {
return stuSex;
}

public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}

public Date getStuBirth() {
return stuBirth;
}

public void setStuBirth(Date stuBirth) {
this.stuBirth = stuBirth;
}

public String getStuTel() {
return stuTel;
}

public void setStuTel(String stuTel) {
this.stuTel = stuTel;
}

public String getStuEmail() {
return stuEmail;
}

public void setStuEmail(String stuEmail) {
this.stuEmail = stuEmail;
}

public String getDept() {
return dept;
}

public void setDept(String dept) {
this.dept = dept;
}

public String getStuIDCard() {
return stuIDCard;
}

public void setStuIDCard(String stuIDCard) {
this.stuIDCard = stuIDCard;
}

public String getClassName() {
return className;
}

public void setClassName(String className) {
this.className = className;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getIsManager() {
return isManager;
}

public void setIsManager(String isManager) {
this.isManager = isManager;
}

}
[/code;'>

[code]import java.util.Date; import java.util.HashSet; import java.util.Set; /**  *   * 学生信息的实体类  * @author Nicky  *  */ public class Student { /*  * 学号  */ private String stuID; /*  * 班级  */ private String stuName; /*  * 性别  */ private String stuSex; /*  * 出生年日  */ private Date stuBirth; /*  * 电话  */ private String stuTel; /*  * 邮箱  */ private String stuEmail; /*  * 专业  */ private String dept; /*  * 身份证  */ private String stuIDCard; /*  * 班级  */ private String className; /*  * 登录密码  */ private String password; /*  * 是否是管理员的标志  1表示是,0表示不是  */ private String isManager; public String getStuID() { return stuID; } public void setStuID(String stuID) { this.stuID = stuID; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuSex() { return stuSex; } public void setStuSex(String stuSex) { this.stuSex = stuSex; } public Date getStuBirth() { return stuBirth; } public void setStuBirth(Date stuBirth) { this.stuBirth = stuBirth; } public String getStuTel() { return stuTel; } public void setStuTel(String stuTel) { this.stuTel = stuTel; } public String getStuEmail() { return stuEmail; } public void setStuEmail(String stuEmail) { this.stuEmail = stuEmail; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public String getStuIDCard() { return stuIDCard; } public void setStuIDCard(String stuIDCard) { this.stuIDCard = stuIDCard; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getIsManager() { return isManager; } public void setIsManager(String isManager) { this.isManager = isManager; } }


配置Student.hbm.xml文件

[html] view
plain copy print?





<?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 package="com.sgdata.po">
<class name="Student" table="tb_students">
<id name="stuID" column="stuID" type="java.lang.String" length="11">
<generator class="assigned"></generator>
</id>
<property name="stuName" type="java.lang.String" length="30" not-null="true"></property>
<property name="stuSex" type="java.lang.String" length="2" not-null="true"></property>
<property name="stuBirth" type="java.util.Date" not-null="true"></property>
<property name="stuTel" type="java.lang.String" length="20" not-null="true"></property>
<property name="stuEmail" type="java.lang.String" length="20" not-null="true"></property>
<property name="dept" type="java.lang.String" length="10" not-null="true"></property>
<property name="stuIDCard" type="java.lang.String" length="20" not-null="true"></property>
<property name="className" type="java.lang.String" length="20" not-null="true"></property>
<property name="password" type="java.lang.String" length="10" not-null="true"></property>
<property name="isManager" type="java.lang.String" length="1" not-null="false"></property>
</class>
</hibernate-mapping>
[/code;'>

[code]<?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 package="com.sgdata.po"> <class name="Student" table="tb_students"> <id name="stuID" column="stuID" type="java.lang.String" length="11"> <generator></generator> </id> <property name="stuName" type="java.lang.String" length="30" not-null="true"></property> <property name="stuSex" type="java.lang.String" length="2" not-null="true"></property> <property name="stuBirth" type="java.util.Date" not-null="true"></property> <property name="stuTel" type="java.lang.String" length="20" not-null="true"></property> <property name="stuEmail" type="java.lang.String" length="20" not-null="true"></property> <property name="dept" type="java.lang.String" length="10" not-null="true"></property> <property name="stuIDCard" type="java.lang.String" length="20" not-null="true"></property> <property name="className" type="java.lang.String" length="20" not-null="true"></property> <property name="password" type="java.lang.String" length="10" not-null="true"></property> <property name="isManager" type="java.lang.String" length="1" not-null="false"></property> </class> </hibernate-mapping>


DAO实现

[java] view
plain copy print?





import java.util.List;

import com.sgdata.po.Student;

public interface StudentDao {

/**
* 获取所有学生信息
* @return
*/
public List<Student> getAllStudentInfo();

}
[/code;'>

[code]import java.util.List; import com.sgdata.po.Student; public interface StudentDao { /**  * 获取所有学生信息  * @return  */ public List<Student> getAllStudentInfo(); }


[java] view
plain copy print?





public class StudentDaoImpl extends HibernateDaoSupport implements StudentDao {

@Resource HibernateTemplate ht;

/**
* 获取所有信息
*/
public List<Student> getAllStudentInfo() {
String sql = "from Student";
List<Student> students = (List<Student>) ht.find(sql);
return students;
}
}
[/code;'>

[code]public class StudentDaoImpl extends HibernateDaoSupport implements StudentDao { @Resource HibernateTemplate ht; /**  * 获取所有信息  */ public List<Student> getAllStudentInfo() { String sql = "from Student"; List<Student> students = (List<Student>) ht.find(sql); return students; } }


Service实现:

[java] view
plain copy print?





import java.util.List;

import com.sgdata.po.Student;

public interface StudentService {

/**
* 获取所有学生信息
* @return
*/
public List<Student> getAllStudentInfo();
}
import java.util.List; import com.sgdata.po.Student; public interface StudentService { /**  * 获取所有学生信息  * @return  */ public List<Student> getAllStudentInfo(); }
[java;'> view plain copy print?import java.util.List;    import javax.annotation.Resource;    import org.springframework.transaction.annotation.Transactional;    import com.sgdata.dao.StudentDao;  import com.sgdata.po.Student;  import com.sgdata.service.StudentService;    @Transactional(readOnly=false)  public class StudentServiceBean implements StudentService {        @Resource private StudentDao studentDao;      public List<Student> getAllStudentInfo() {          return studentDao.getAllStudentInfo();      }  }


[code]import java.util.List; import javax.annotation.Resource; import org.springframework.transaction.annotation.Transactional; import com.sgdata.dao.StudentDao; import com.sgdata.po.Student; import com.sgdata.service.StudentService; @Transactional(readOnly=false) public class StudentServiceBean implements StudentService { @Resource private StudentDao studentDao; public List<Student> getAllStudentInfo() { return studentDao.getAllStudentInfo(); } }


Action实现:

[java] view
plain copy print?





/**
* 实现学生信息管理的Action类
*
*/
public class StudentInfoManagerAction extends ActionSupport {

/**
*
*/
private static final long serialVersionUID = 1L;

@Resource private StudentService studentService;

//页数
int pagenum = 0;

//学号
private String stuID;

//姓名
private String stuName;

//性别
private String stuSex;

//出生年月
private String stuBirth;

//电话
private String stuTel;

//邮箱
private String stuEmial;

//系部
private String dept;

//身份证
private String stuIDCard;

//班级
private String className;

//密码
private String password;

/**
* 学生对象来储存学生信息
*/
private Student student;

/**
* 学生信息的列表
*/
private List<Student> studentsInfo;

/**
* 学生学习成绩的信息列表
*/
private List learnScores;

/**
* 学生比赛成绩的信息列表
*/
private List matchScores;

public StudentInfoManagerAction(){
//student = new Student();

}

public Student getStudent() {
return student;
}

public void setStudent(Student student) {
this.student = student;
}

public void setStudentsInfo(List<Student> studentsInfo){
this.studentsInfo = studentsInfo;
}

public List<Student> getStudentsInfo() {
return studentsInfo;
}

public List getLearnScores() {
return learnScores;
}

public void setLearnScores(List learnScores) {
this.learnScores = learnScores;
}

public List getMatchScores() {
return matchScores;
}

public void setMatchScores(List matchScores) {
this.matchScores = matchScores;
}

public int getPagenum() {
return pagenum;
}

public void setPagenum(int pagenum) {
this.pagenum = pagenum;
}

public String getStuID() {
return stuID;
}

public void setStuID(String stuID) {
this.stuID = stuID;
}

public String getStuName() {
return stuName;
}

public void setStuName(String stuName) {
this.stuName = stuName;
}

public String getStuSex() {
return stuSex;
}

public void setStuSex(String stuSex) {
this.stuSex = stuSex;
}

public String getStuBirth() {
return stuBirth;
}

public void setStuBirth(String stuBirth) {
this.stuBirth = stuBirth;
}

public String getStuTel() {
return stuTel;
}

public void setStuTel(String stuTel) {
this.stuTel = stuTel;
}

public String getStuEmial() {
return stuEmial;
}

public void setStuEmial(String stuEmial) {
this.stuEmial = stuEmial;
}

public String getDept() {
return dept;
}

public void setDept(String dept) {
this.dept = dept;
}

public String getStuIDCard() {
return stuIDCard;
}

public void setStuIDCard(String stuIDCard) {
this.stuIDCard = stuIDCard;
}

public String getClassName() {
return className;
}

public void setClassName(String className) {
this.className = className;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

/**
* 获取学生的基本信息
* @return
* @throws Exception
*/
//@Override
public String getAllInfo() throws Exception {
studentsInfo = studentService.getAllStudentInfo();
return SUCCESS;
}
}
[/code;'>

[code]/**  * 实现学生信息管理的Action类  *  */ public class StudentInfoManagerAction extends ActionSupport { /**  *   */ private static final long serialVersionUID = 1L; @Resource private StudentService studentService; //页数 int pagenum = 0; //学号 private String stuID; //姓名 private String stuName; //性别 private String stuSex; //出生年月 private String stuBirth; //电话 private String stuTel; //邮箱 private String stuEmial; //系部 private String dept; //身份证 private String stuIDCard; //班级 private String className; //密码 private String password; /**  * 学生对象来储存学生信息  */ private Student student; /**  * 学生信息的列表  */ private List<Student> studentsInfo; /**  * 学生学习成绩的信息列表  */ private List learnScores; /**  * 学生比赛成绩的信息列表  */ private List matchScores; public StudentInfoManagerAction(){ //student = new Student(); } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public void setStudentsInfo(List<Student> studentsInfo){ this.studentsInfo = studentsInfo; } public List<Student> getStudentsInfo() { return studentsInfo; } public List getLearnScores() { return learnScores; } public void setLearnScores(List learnScores) { this.learnScores = learnScores; } public List getMatchScores() { return matchScores; } public void setMatchScores(List matchScores) { this.matchScores = matchScores; } public int getPagenum() { return pagenum; } public void setPagenum(int pagenum) { this.pagenum = pagenum; } public String getStuID() { return stuID; } public void setStuID(String stuID) { this.stuID = stuID; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public String getStuSex() { return stuSex; } public void setStuSex(String stuSex) { this.stuSex = stuSex; } public String getStuBirth() { return stuBirth; } public void setStuBirth(String stuBirth) { this.stuBirth = stuBirth; } public String getStuTel() { return stuTel; } public void setStuTel(String stuTel) { this.stuTel = stuTel; } public String getStuEmial() { return stuEmial; } public void setStuEmial(String stuEmial) { this.stuEmial = stuEmial; } public String getDept() { return dept; } public void setDept(String dept) { this.dept = dept; } public String getStuIDCard() { return stuIDCard; } public void setStuIDCard(String stuIDCard) { this.stuIDCard = stuIDCard; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } /**  * 获取学生的基本信息  * @return  * @throws Exception  */ //@Override public String getAllInfo() throws Exception { studentsInfo = studentService.getAllStudentInfo(); return SUCCESS; } }


然后就可以在JSP页面引入

<%@ taglib uri="/struts-tags" prefix="s" %>

然后获取数据了
[html;'>


view plain copy print?



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐