基于Spring+SpringMvc+Hibernate的JSP+MYSQL学生就业管理 课设

基于Spring+SpringMvc+Hibernate的JSP+MYSQL学生就业管理系统课设

1.包含源程序,数据库脚本。代码和数据库脚本都有详细注释。
2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善

代码已经上传github, https://github.com/21503882/student-job
开发环境:
Eclipse ,MYSQL,JDK1.7,Tomcat 7
涉及技术点:
MVC模式、springMvc、Hibernate、Spring、HTML、JavaScript、CSS、JQUERY、poi、jpa、Ajax等
系统采用Hibernate框架实现ORM对象关系映射,前台JSP实现,后台springMvc映射,使用Spring框架进行整合。适合学习J2EE的一段时间的熟手,代码思路清晰,注解详细,数据库用的是mysql5.1,服务器用的tomcat7,JDK版本1.7. 编程软件Eclispe J2EE版本。是典型MVC架构,并且前后台分离;
主要功能:

package com.sy.mapper; 
import java.util.List; 
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
 
import com.cck.Reply;
import com.sy.map.ReplyResultMap;
import com.sy.sql.ReplySql;
 
/**
 *
 * @author cck
 */
public interface ReplyMapper extends ReplyResultMap {
 
    @InsertProvider(type = ReplySql.class, method = "save")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int save(Reply reply);
    
    @UpdateProvider(type = ReplySql.class, method = "updatePath")
    void updatePath(
            @Param("id")Integer id, 
            @Param("path")String path);
    
    @ResultMap("map")
    @SelectProvider(type = ReplySql.class, method = "getByTopicId")
    List<Reply> getByTopicId(Integer topicId);
    
    @ResultMap("map")
    @SelectProvider(type = ReplySql.class, method = "getByPath")
    List<Reply> getByPath(String path);
    
    @SelectProvider(type = ReplySql.class, method = "getPath")
    String getPath(Integer id);
    
}
 

package com.chengxusheji.dao;
 
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Service; 
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
 
import com.chengxusheji.domain.Admin;
import com.chengxusheji.domain.UserInfo;
 
@Service @Transactional
public class UserInfoDAO {
 
    @Resource SessionFactory factory;
    /*每页显示记录数目*/
    private final int PAGE_SIZE = 10;
 
    /*保存查询后总的页数*/
    private int totalPage;
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
    public int getTotalPage() {
        return totalPage;
    }
 
    /*保存查询到的总记录数*/
    private int recordNumber;
    public void setRecordNumber(int recordNumber) {
        this.recordNumber = recordNumber;
    }
    public int getRecordNumber() {
        return recordNumber;
    }
    
    private String errMessage; 
    
    public String getErrMessage() {
        return errMessage;
    }
    public void setErrMessage(String errMessage) {
        this.errMessage = errMessage;
    }
    /*验证用户登录*/
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    public boolean CheckLogin(String userName,String password) { 
        Session s = factory.getCurrentSession();  
        UserInfo db_userInfo = (UserInfo)s.get(UserInfo.class, userName);
        if(db_userInfo == null) { 
            this.errMessage = " 账号不存在 ";
            System.out.print(this.errMessage);
            return false;
        } else if( !db_userInfo.getPassword().equals(password)) {
            this.errMessage = " 密码不正确! ";
            System.out.print(this.errMessage);
            return false;
        }
        
        return true;
    }
    
    
    /*添加用户信息*/
    public void AddUserInfo(UserInfo userInfo) throws Exception {
        Session s = factory.getCurrentSession();
     s.save(userInfo);
    }
 
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    public ArrayList<UserInfo> QueryUserInfoInfo(String user_name,String realName,String birthday,String cardNumber,String city,int currentPage) { 
        Session s = factory.getCurrentSession();
        String hql = "From UserInfo userInfo where 1=1";
        if(!user_name.equals("")) hql = hql + " and userInfo.user_name like '%" + user_name + "%'";
        if(!realName.equals("")) hql = hql + " and userInfo.realName like '%" + realName + "%'";
        if(!birthday.equals("")) hql = hql + " and userInfo.birthday like '%" + birthday + "%'";
        if(!cardNumber.equals("")) hql = hql + " and userInfo.cardNumber like '%" + cardNumber + "%'";
        if(!city.equals("")) hql = hql + " and userInfo.city like '%" + city + "%'";
        Query q = s.createQuery(hql);
        /*计算当前显示页码的开始记录*/
        int startIndex = (currentPage-1) * this.PAGE_SIZE;
        q.setFirstResult(startIndex);
        q.setMaxResults(this.PAGE_SIZE);
        List userInfoList = q.list();
        return (ArrayList<UserInfo>) userInfoList;
    }
 
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    public ArrayList<UserInfo> QueryUserInfoInfo(String user_name,String realName,String birthday,String cardNumber,String city) { 
        Session s = factory.getCurrentSession();
        String hql = "From UserInfo userInfo where 1=1";
        if(!user_name.equals("")) hql = hql + " and userInfo.user_name like '%" + user_name + "%'";
        if(!realName.equals("")) hql = hql + " and userInfo.realName like '%" + realName + "%'";
        if(!birthday.equals("")) hql = hql + " and userInfo.birthday like '%" + birthday + "%'";
        if(!cardNumber.equals("")) hql = hql + " and userInfo.cardNumber like '%" + cardNumber + "%'";
        if(!city.equals("")) hql = hql + " and userInfo.city like '%" + city + "%'";
        Query q = s.createQuery(hql);
        List userInfoList = q.list();
        return (ArrayList<UserInfo>) userInfoList;
    }
 
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    public ArrayList<UserInfo> QueryAllUserInfoInfo() {
        Session s = factory.getCurrentSession(); 
        String hql = "From UserInfo";
        Query q = s.createQuery(hql);
        List userInfoList = q.list();
        return (ArrayList<UserInfo>) userInfoList;
    }
 
    /*计算总的页数和记录数*/
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    public void CalculateTotalPageAndRecordNumber(String user_name,String realName,String birthday,String cardNumber,String city) {
        Session s = factory.getCurrentSession();
        String hql = "From UserInfo userInfo where 1=1";
        if(!user_name.equals("")) hql = hql + " and userInfo.user_name like '%" + user_name + "%'";
        if(!realName.equals("")) hql = hql + " and userInfo.realName like '%" + realName + "%'";
        if(!birthday.equals("")) hql = hql + " and userInfo.birthday like '%" + birthday + "%'";
        if(!cardNumber.equals("")) hql = hql + " and userInfo.cardNumber like '%" + cardNumber + "%'";
        if(!city.equals("")) hql = hql + " and userInfo.city like '%" + city + "%'";
        Query q = s.createQuery(hql);
        List userInfoList = q.list();
        recordNumber = userInfoList.size();
        int mod = recordNumber % this.PAGE_SIZE;
        totalPage = recordNumber / this.PAGE_SIZE;
        if(mod != 0) totalPage++;
    }
 
    /*根据主键获取对象*/
    @Transactional(propagation=Propagation.NOT_SUPPORTED)
    public UserInfo GetUserInfoByUser_name(String user_name) {
        Session s = factory.getCurrentSession();
        UserInfo userInfo = (UserInfo)s.get(UserInfo.class, user_name);
        return userInfo;
    }
 
    /*更新UserInfo信息*/
    public void UpdateUserInfo(UserInfo userInfo) throws Exception {
        Session s = factory.getCurrentSession();
        s.update(userInfo);
    }
 
    /*删除UserInfo信息*/
    public void DeleteUserInfo (String user_name) throws Exception {
        Session s = factory.getCurrentSession();
        Object userInfo = s.load(UserInfo.class, user_name);
        s.delete(userInfo);
    }
 
}
 
 

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
基于SSH(struts-spring-hibernate)开发的学生成绩管理系统,附完整报告,SQL文件,环境为:eclipse+mysql+jdk1.8+tomcate8。运行均能通过,可以作为期末大作业。亲测好用,如果调不通的话,可以私信我~~ 该软件的主要功能是,可以选择多门程学习,程类别是必修或选修,每门程由一位专业教师授,学期末教师给出学生成绩,成绩由平时成绩、实验成绩、理论成绩组成。 (1)学生基本情况录入模块: 主要功能用来对学生的基本信息进行收集和录入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。 (2)程基本情况录入模块: 主要功能用来对程的基本信息进行收集和录入。在程信息保存在系统中的前提下,成绩录入需要输入程资料,比如程号,学时,学分。 (3)成绩基本情况录入模块: 主要功能用来对学生的成绩进行收集和录入。在准确录入学生资料后,就可以对该学生的各科成绩进行录入。 (4)按学生学号查找并显示学生资料模块: 主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料信息 。 (5)按程号查找并显示学生资料模块: 主要功能是用来查找程资料。在系统保存了某程资料的前提下,想要查找该程资料,可以输入该程号,这样系统就会显示该程信息 。 (6)修改删除该学生资料模块 主要功能是用来删除学生资料,在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化。 (7)修改删除程资料模块 主要功能是用来修改删除程资料,在系统保存程资料的前提下,想修改删除某程的资料,可以直接点击删除,系统查找该程资料后,就可以删除了。 (8)删除成绩资料模块 主要功能是用来删除成绩资料,在系统保存程资料的前提下,想删除某项成绩的资料,可以直接点击删除,系统查找该项成绩后,就可以删除了。 (9)用户更改密码 主要功能是用来对管理员用户提供密码修改操作.
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

MYQQ79856539

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值