基于SSM的学生信息管理系统(选课)

项目简介:
由SpringMVC+MyBatis为主要框架,mysql8.0配置主从复制实现读写分离,主机丛机分别为腾讯云的服务器,而项目部署在阿里云上。前端主要由bootstrap完成,背景用particles.js插件。数据库交互查询用到pagehelper分页。在添加修改相关功能时通过ajax来验证其主键是否存在可用。代码层次清晰,输入框约束较高,已配置登录拦截。

一、应用技术

  • 工具:eclipse、navicat
  • 环境:JDK1.8、tomcat9.0、mysql8.0
  • 前端:JavaScript、jQuery、bootstrap4、particles.js
  • 后端:maven、SpringMVC、MyBatis、ajax、mysql读写分离、mybatis分页

二、环境搭建

  1. 建议安装eclipse4.8及以上
    官网下载:点击进入官网下载
  2. JDK 1.8
    官网下载:点击进入官网下载
  3. MySQL8.0
    官网下载:https://dev.mysql.com/downloads/mysql/
    windows安装:略!
    linux安装请查看:https://fuzui.net/2019/04/15/mysql-master-slave/#more
    mysql主从搭建(可有可无):如果不需要读写分离只需要把applicationContext.xml配置文件改一下即可,这样也就不必搭建主从。
    搭建有以下方式
    (1)单台linux通过docker搭建mysql主从:
    https://blog.csdn.net/supermao1013/article/details/83065682
    (2)两台云服务器或虚拟机(我用的这种方式):
    https://fuzui.net/2019/04/15/mysql-master-slave/#more
  4. tomcat 9.0
    官方下载:点击进入官网下载
  5. navicat数据库工具
    百度网盘下载:https://pan.baidu.com/s/1BWQglimJH4_heiKLyH0lKg
    提取码:eslh

    eclipse、jdk、tomcat等相关安装配置步骤省略

三、功能

这是在上个springmvc选课系统的基础上进行修改完善的,目前功能基本相同,修复诸多bug,上个系统中有详细介绍:B/S基于springMVC的网上选课系统
主要功能模块图:

新增:

  • 增加分页查询
  • 输入框约束
    学号、身份证、课程编号、教师编号只能输入数字,并且有最大输入限制,其中学号固定12位,若小于12位将会有提示。姓名只能输入中文。几乎所有输入框不能输入空格等约束
  • 下拉框联动
    添加、修改课程采用二级联动,即所属系别——所属专业;
    添加、修改学生采用三级联动,即系别——专业——班级。(三级联动代码有些复杂,因为JavaScript学的不好=-=)。
  • ajax+springmvc验证
    用于验证学号、课程编号、教师编号是否存在并给出提示信息等。
    其中课程安排时间地点排重功能正在开发中····
  • 登录拦截
    在handler层配置拦截器,对各角色进行登录拦截,即未登录用户不能直接通过相应url访问。
    更多功能持续更新中······

四、数据库设计

总共六个表:学生表、教师表、管理员表、课程表、课程安排表、选课表。

  管理员表admin

列名 类型 约束 备注
Aname Varchar(12) 主键 账号
Apassword 密码

  学生表Student

列名 类型 约束 备注
Sid Char(12) 非空、主键 学号
Sname Varchar(8) 非空 姓名
Sidcard Char(18) 非空 身份证
Ssex Char(2) 男女 性别
Spassword Varchar(12) 非空 密码
Sage Char(2) 年龄
Classr Varchar(15) 班级
profession Varchar(15) 专业
College Varchar(15) 学院

  教师表Teacher

列名 类型 约束 备注
Tid Char(4) 主键 工号
Tname Varchar(8) 姓名
Tpassword Varchar(12) 密码
Tsex Char(2) 男女 性别
Introduction Varchar(100) 简介

  课程表course

列名 类型 约束 备注
Cid Char(4) 主键 课程号
Cname varChar(15) 课程名
Cintroduction Varchar(100) 简介
Type Varchar(15) 类型(选修,必修)
Belongcoll Varchar(15) 所属学院
Belongpro Varchar(15) 所属专业

  课程安排

列名 类型 约束 备注
Courseclass Varchar(12) 主键 开课班级
Coursetime Varchar(12) 上课时间
Courseweek Varchar(12) 上课周
Cid Char(4) 外键 课程号
Tid Char(4) 外键 教师编号
Classroom Varchar(6) 上课教室
credits Int(11) 学分
period Int(11) 学时
Totalnum Int(11) 总人数

  选课表sc

列名 类型 约束 备注
Id varChar(4) 自动增长、主键 用于传值
Sid Char(12) 外键 学生学号
Cid Char(4) 外键 课程编号

五、主页面截图


enter description here

更多请查看演示

六、项目层次

七、展示与下载

展示:
studentInfo.fuzui.net
请大佬不要攻击我毫无防御的服务器~
如果发现什么bug希望能够及时留言或联系我,会尽快修正。

下载:

还可留邮箱我发源码

最终感谢大佬给予前端风格设计帮助 @进军的橙子君

如果部署运行测试中出现问题可以找我~,留言会在12小时内回复

2019.4.26解决因为数据库远程连接而出现一系列问题的bug,github更新:主要在连接上加allowPublicKeyRetrieval=true

2019年6月19日更新:
新增结课、成绩录入、学分统计功能。
成绩录入处有bug,可以录入多次成绩,后续再修改

特别说明:
如果你的版本和我的完全一致,那么运行是完全容易的,在这里再重申一遍版本:eclipse4.8及以上,mysql8,tomcat9,JDK8。版本一致的话出现问题可无偿帮调试。
如果版本不一致烦请您自己折腾(举个例子:mysql5、eclipse3.3、tomcat7······)。





当你的才华还撑不起你的野心的时候,
你就应该静下心来学习。


-------------本文结束感谢您的阅读-------------
王泽 wechat
扫一扫添加微信好友
0%