您的位置:首页 > 其它

用ssh思想写的一个学生信息管理系统

2017-10-15 10:24 597 查看
用ssh思想写的一个学生信息管理系统

下面给大家介绍一下  系统架构



(1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 目的:

掌握Struts2的开发步骤 掌握Hibernate的开发步骤

掌握Spring的开发步骤,理解依赖注入、AOP、事务管理等 掌握Struts2、Spring和Hibernate框架的整合 掌握分页技术 思路: 1、 建库建表

2、 利用分层思想,建package 3、 添加Spring开发能力 4、 添加Hibernate开发能力

5、 生成Hibernate所需的POJO类和映射文件 6、 开发DAO层 (1) 新建DAO层接口。

(2) 新建DAO层实现类(该类要实现DAO层接口,继承

HibernateDaoSupport类)。

(3) 在Spring配置文件中增加该DAO层实现类的定义,并需要依

赖注入一个SessionFactory bean的引用。 7、 开发Service层 (1) 新建Service层接口。

(2) 新建Service层实现类,该类中需要声明所调用DAO层接口,

并生其setter方法。

(3) 在Spring配置文件中增加该Service层实现类的定义,并需要

依赖注入DAO层的bean。 8、 实现WEB层

(1) 在web.xml中增加struts2的过滤器和Spring的监听器。 (2) 增加Spring和Struts2的整合文件struts.properties。 (3) 新建所需的jsp文件。

(4) 新建Action类,该类要继承ActionSupport,同时该类要依赖注

入Service的bean(声明+setter方法)。

(5) 在Spring配置文件中增加该Action类的定义,并注入Service

层的bean。

(6) 在struts.xml中增加该Action的定义,其中class的属性是在

Spring中定义的该Action bean的id。 9、部署运行 实验步骤:

StudentAction.java

package com.cn.action;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Scope;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;

import com.cn.model.Student;
import com.cn.model.User;
import com.cn.service.StudentManager;
import com.cn.service.UserManager;
import com.cn.vo.Info;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@Component("student")
@Scope("prototype")
public class StudentAction extends ActionSupport implements ModelDriven{

private Info info = new Info();

private StudentManager studentManager;

private List<Student> students;

public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
public StudentManager getStudentManager() {
return studentManager;
}
@Resource(name="studentManager")
public void setStudentManager(StudentManager studentManager) {
this.studentManager = studentManager;
}

public Info getInfo() {
return info;
}
public void setInfo(Info info) {
this.info = info;
}

/**
* 增加学生信息
* @return
* @throws Exception
*/
public String add() throws Exception{
Student stu = new Student();
stu.setId(info.getId());
stu.setSid(info.getSid());
stu.setName(info.getName());
stu.setCollege(info.getCollege());
stu.setProfession(info.getProfession());
studentManager.add(stu);
return "success";
}

/**
* 查询学生信息
* @return
* @throws Exception
*/
public String list() throws Exception{
this.students = this.studentManager.getStudents();
return "list";
}
/**
* 获取需要删除学生信息的学号
* @return
* @throws Exception
*/
public String numberlistfordelete() throws Exception{
this.students = this.studentManager.getStudents();
return "numberlistfordelete";
}
/**
* 获取需要修改学生信息的学号
* @return
* @throws Exception
*/
public String numberlistformodify() throws Exception{
this.students = this.studentManager.getStudents();
return "numberlistformodify";
}

/**
* 删除学生信息
* @return
* @throws Exception
*/
public String delete() throws Exception{
studentManager.delete(Integer.parseInt(info.getSelect()));
return "delete";
}

/**
* 更新学生信息
* @return
* @throws Exception
*/
public String modify() throws Exception{
Student stu = new Student();
stu.setCollege(info.getCollege());
stu.setName(info.getName());
stu.setProfession(info.getProfession());
stu.setSid(info.getSid());
System.out.println(stu.getCollege()+ " " +stu.getProfession() + " "+ stu.getName()+" "+ stu.getSid());
studentManager.update(stu.getCollege(), stu.getProfession(), stu.getName(), stu.getSid());
return "modify";
}

public Object getModel() {
// TODO Auto-generated method stub
return info;
}

}
Useraction.java
package com.cn.action;

import javax.annotation.Resource;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Scope;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;

import com.cn.model.Student;
import com.cn.model.User;
import com.cn.service.StudentManager;
import com.cn.service.UserManager;
import com.cn.service.impl.UserManagerImpl;
import com.cn.vo.Info;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

@Component("user")
@Scope("prototype")
public class UserAction extends ActionSupport implements ModelDriven{
private UserManager userManager;
private Info info = new Info();

private UserManager um ;

public UserManager getUserManager() {
return userManager;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
public Info getInfo() {
return info;
}
public void setInfo(Info info) {
this.info = info;
}
public UserManager getUm() {
return um;
}
@Resource(name="userManager")
public void setUm(UserManager um) {
this.um = um;
}

/**
* 用户登录判断的action
* @return success登录成功界面 fail登录失败界面
* @throws Exception
*/

public String login() throws Exception {
User u = new User();
u.setUsername(info.getUsername());
u.setPassword(info.getPassword());
if(um.existsUserNamePwd(u)){
return "success";
}
return "fail";
}
/**
* 用户注册
* @return
* @throws Exception
*/
public String add() throws Exception{
User stu = new User();
System.out.println("输出"+info.getName()+"密码"+info.getPassword());
stu.setUsername(info.getUsername());
stu.setPassword(info.getPassword());
userManager.add(stu);
return "success";
}

public Object getModel() {
// TODO Auto-generated method stub
return info;
}

}


StudentDao.java
package com.cn.dao;

import java.util.List;

import com.cn.model.Student;

public interface StudentDao {
public void save(Student stu);
public List<Student> selectStudent();
public void delete(int sid);
public void update(String college,String profession,String name, int sid);

}


UserDao.java
package com.cn.dao;

import com.cn.model.Student;
import com.cn.model.User;

public interface UserDao {
public void save(User stu);
public boolean checkUserExistsWithName(String username);
public boolean checkUserExistsWithNamePwd(String username,String password);

}


StudentDaoImpl.java
package com.cn.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;

import com.cn.dao.StudentDao;
import com.cn.model.Student;
@Component("studentDao")
public class StudentDaoImpl implements StudentDao{

private HibernateTemplate hibernateTemplate;

public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource(name="hibernateTemplate")
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

public void save(Student stu) {
hibernateTemplate.save(stu);
}
public List<Student> selectStudent() {

return (List<Student>)this.hibernateTemplate.find("from Student s order by s.id asc ");
}
public void delete(int sid) {

List<Student> s = hibernateTemplate.find("from Student s where s.sid = '"+sid+"' ");
hibernateTemplate.deleteAll(s);

}
public void update(String college,String profession,String name, int sid) {
Session session = hibernateTemplate.getSessionFactory().openSession();
session.beginTransaction();
session.createQuery("update Student stu set stu.college ='"+college+"',stu.profession = '"+profession+"',stu.name = '"+name+"' where stu.sid='"+sid+"' ").executeUpdate();
session.getTransaction().commit();

}

}
UserDaoImpl.java
package com.cn.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;

import com.cn.dao.UserDao;
import com.cn.model.Student;
import com.cn.model.User;
@Component("userDao")
public class UserDaoImpl implements UserDao{

private HibernateTemplate hibernateTemplate;

public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource(name="hibernateTemplate")
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

public void save(Student stu) {
hibernateTemplate.save(stu);
}

public boolean checkUserExistsWithName(String username) {
List<User> users = hibernateTemplate.find("from User u where u.username = '"+username+"' ");
int count = users.size();
if(users != null && count > 0) return true;

return false;
}
public boolean checkUserExistsWithNamePwd(String username, String password) {
List<User> users = hibernateTemplate.find("from User u where u.username = '"+username+"' and u.password = '"+password+"'");
int count = users.size();
if(users != null && count > 0) return true;

return false;
}
@Override
public void save(User stu) {
// TODO Auto-generated method stub
hibernateTemplate.save(stu);
}

}
下面是映射文件Student.java
package com.cn.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="stuinfo")
public class Student {
private int id;
private int sid;
private String name;
private String college;
private String profession;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public String getProfession() {
return profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}

}


User.java
package com.cn.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="loginaccount")
public class User {
private int id;
private String username;
private String password;
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}

StudentManager.java

package com.cn.service;

import java.util.List;

import com.cn.model.Student;
import com.cn.model.User;

public interface StudentManager {

public void add(Student stu);

public List<Student> getStudents();

public void delete(int sid);

public void update(String college,String profession,String name, int sid);

}UserManager.java
package com.cn.service;

import com.cn.model.Student;
import com.cn.model.User;

public interface UserManager {

public  boolean existsUserName(User u);
public  boolean existsUserNamePwd(User u);

public  void add(User log);

}


StudentManagerImpl.java
package com.cn.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.cn.dao.StudentDao;
import com.cn.model.Student;
import com.cn.model.User;
import com.cn.service.StudentManager;

@Component("studentManager")
public class StudentManagerImpl implements StudentManager {
private StudentDao studentDao;

public StudentDao getStudentDao() {
return studentDao;
}
@Resource(name="studentDao")
public void setStudentDao(StudentDao studentDao) {
this.studentDao = studentDao;
}

public void add(Student stu){
studentDao.save(stu);
}
public List<Student> getStudents() {
// TODO Auto-generated method stub
return studentDao.selectStudent();
}
public void delete(int sid) {
studentDao.delete(sid);

}
public void update(String college,String profession,String name, int sid){
studentDao.update(college, profession, name, sid);
}

}
UserManagerImpl.java
package com.cn.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.cn.dao.UserDao;
import com.cn.model.Student;
import com.cn.model.User;
import com.cn.service.UserManager;

@Component("userManager")
public class UserManagerImpl implements UserManager {
private UserDao userDao ;

public UserDao getUserDao() {
return userDao;
}
@Resource(name="userDao")
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

public boolean existsUserName(User u){
return userDao.checkUserExistsWithName(u.getUsername());
}

public void add(User stu){
userDao.save(stu);
}
public boolean existsUserNamePwd(User u) {
// TODO Auto-generated method stub
return userDao.checkUserExistsWithNamePwd(u.getUsername(), u.getPassword());
}
}
HibernateUtil.java

package com.cn.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

public class HibernateUtil {
private static SessionFactory sf;
static {
sf = new AnnotationConfiguration().configure().buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sf;
}
}


Info.java
package com.cn.vo;

public class Info {
private String username;
private String password;
private int id;
private int sid;
private String name;
private String college;
private String profession;
private String select;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public String getProfession() {
return profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSelect() {
return select;
}
public void setSelect(String select) {
this.select = select;
}

}
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.cn"/>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<!-- results in a setDriverClassName(String) call -->
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/lk"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--
<property name="annotatedClasses">
<list>
<value>com.lk.model.User</value>
<value>com.lk.model.Log</value>
</list>
</property>
-->

<property name="packagesToScan">
<list>
<value>com.cn.model</value>
</list>
</property>

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>

</property>
</bean>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<aop:config>
<aop:pointcut id="bussinessService" expression="execution(public * com.cn.service..*.*(..))"/>
<aop:advisor pointcut-ref="bussinessService" advice-ref="txAdvice"/>
</aop:config>

<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="exists" read-only="true"/>
<tx:method name="add*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>

</beans>


struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<package name="registration" extends="struts-default" >

<action name="user" class="com.cn.action.UserAction" method="login">
<result name="fail">index.jsp</result>
<result name="success">stuAdmin.jsp</result>
</action>
<action name="user" class="com.cn.action.UserAction" method="add">
<result name="fail">index.jsp</result>
<result name="success">stuAdmin.jsp</result>
</action>
<action name="student" class="com.cn.action.StudentAction" >
<result name="list">stuselect.jsp</result>
<result name="success">stuaddSuccess.jsp</result>
<result name="numberlistfordelete">studelete.jsp</result>
<result name="delete">deletesuce.jsp</result>
<result name="numberlistformodify">stumodify.jsp</result>
<result name="modify">stumodifycheck2.jsp</result>
</action>

</package>
</struts>
jsp页面我就不写了



运行效果图:









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