基于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安装请查看(第一条有详细说明mysql8安装):https://blog.csdn.net/qq_39329616/article/details/89318903
    mysql主从搭建(可有可无):如果不需要读写分离只需要把applicationContext.xml配置文件改一下即可,这样也就不必搭建主从。
    搭建有以下方式
    (1)单台linux通过docker搭建mysql主从:
    https://blog.csdn.net/supermao1013/article/details/83065682
    (2)两台云服务器或虚拟机(我用的这种方式):
    https://blog.csdn.net/qq_39329616/article/details/89318903

  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

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

  学生表Student

列名类型约束备注
SidChar(12)非空、主键学号
SnameVarchar(8)非空姓名
SidcardChar(18)非空身份证
SsexChar(2)男女性别
SpasswordVarchar(12)非空密码
SageChar(2)年龄
ClassrVarchar(15)班级
professionVarchar(15)专业
CollegeVarchar(15)学院

  教师表Teacher

列名类型约束备注
TidChar(4)主键工号
TnameVarchar(8)姓名
TpasswordVarchar(12)密码
TsexChar(2)男女性别
IntroductionVarchar(100)简介

  课程表course

列名类型约束备注
CidChar(4)主键课程号
CnamevarChar(15)课程名
CintroductionVarchar(100)简介
TypeVarchar(15)类型(选修,必修)
BelongcollVarchar(15)所属学院
BelongproVarchar(15)所属专业

  课程安排

列名类型约束备注
CourseclassVarchar(12)主键开课班级
CoursetimeVarchar(12)上课时间
CourseweekVarchar(12)上课周
CidChar(4)外键课程号
TidChar(4)外键教师编号
ClassroomVarchar(6)上课教室
creditsInt(11)学分
periodInt(11)学时
TotalnumInt(11)总人数

  选课表sc

列名类型约束备注
IdvarChar(4)自动增长、主键用于传值
SidChar(12)外键学生学号
CidChar(4)外键课程编号
五、主页面截图


enter description here

更多请查看演示

六、项目层次

七、展示与下载

展示:
http://studentInfo.fuzui.net/StudentInfo
4月15日,我的服务器出现问题,包括mysql在内,即无法通过网站演示,待修复····
11月13日,暂时无法预览

2020年02月06日,修改演示地址

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

下载:

配套论文:基于JavaEE的学生信息管理(选课)系统论文

还可留邮箱我发源码

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

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


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

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

2019年11月13日更新:
工作半年,回头看看自己的那些学习小项目,不忍直视。今天用了一小会重新整理了下,删除了mongodb的配置,源码忽略掉一些eclipse配置(可以在eclipse上或idea上运行,直接导入maven项目,导入本地sql),里面有一些还是绝对路径没改过来,所以项目名尽量不要更改,后期抽时间再改改。github和百度网盘都更新了,可以在上面链接下载。


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




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

  • 62
    点赞
  • 413
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 285
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 285
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客时代

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值