注:展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信up主。
2.1 Java语言简介
SUN公司是在2010年被Oracle收购以后,Java成为了Oracle公司推出的一种高级编程语言,其英文名字为“Java”是由印度尼西亚爪哇岛得来的,其标识则象征着一杯正冒着热气的咖啡。在互联网盛行的环境下,Java语言表现出非常明显的优势并拥有广泛的发展前景。同C++类似,Java语言的基本语句语法都很基础,但是其独具特色的面向对象技术更为完善。与其它编程语言不同的是,Java语言要求对所有内容进行分类,将类别作为该程序的基本单元,所以该系统具备了平台的无关性、安全性和健壮性。Java语言是一种面向具体对象的语言,可以处理网络中的信息传输协议,支持客户机/服务器模式。由于类外不允许存在变量和方法,这种特性在Java中得到了很好的体现。Java的动态性通俗的来说是进行动态安装,这个操作可以使Java动态的维护程序。Java里是没有具体的指向,因此所有的对内存进行操作的都是通过对象真实发生实现的,这样就避免了在进行指针操作时出现错误,同时也增强了系统的安全性、可靠性。
Java语言有好的地方,当然也有不好的地方,在每次编译完成之后,字节码比较消耗时间,在某种程度上影响了该程序的性质和功能。但并不影响Java语言你被广泛运用。Java的主要特点可以概括为:
1.对象导向
面向对象有四大特征:封装、继承、多态、抽象。其中,抽象代表着只关注了主要问题,忽略了次要部分;多态注重表现在对同一个消息作出不同反应;而继承是在父类的基础上添加只属于自己的方法,而不改变原本的父类。
2.跨平台性
Java将代码编译生成字节码,直接执行。只要平台上含有Java虚拟机,就能够去运行Java程序。
3.可靠性和安全性
Java访问内存必须通过实例变量,防止指针错误
4. 并行处理
Java多线程可实现同步工作,提高效率。
2.2 SSM框架
SSM框架是一种Java Web开发框架,由Spring、SpringMVC和MyBatis三个开源框架组成。它将这三个框架进行了整合,每个框架在其专业领域内起到了不同的作用。其中,Spring框架负责IoC和AOP,使得代码的解耦和复用性更高;MyBatis框架负责对持久层进行操作,通过mapper映射文件实现了SQL与Java分离的操作,使得数据访问更加简单;而SpringMVC则客户端与服务器端的请求监听和响应处理,将请求和响应的处理逻辑分离,使得开发更加高效[16]。
SSM框架具有很多优点。首先,它扩展了Spring框架,使得它能够与MyBatis框架整合,从而提供更好的持久化功能。其次,它有完整的MVC支持,可以使代码更加分层,更易于维护和扩展。此外,SSM框架还支持简单的配置和快速的开发,提高了开发效率和代码可读性。
总之,SSM框架是一种集三个框架的为一体的Web开发框架。它为实现Web开发提供了一种灵活、高效、安全、易于维护的方法。通过SSM框架,我们可以快速地完成Web开发的任务,而不必担心代码的耦合和可维护性问题。
2.3 B/S架构
B/S架是目前IT领域一个非常受欢迎的技术,它已经在很多方面得到了应用,其主要有:系统分析、设计和实现。本文对基于JavaWeb的教务管理系统进行开发。该软件包括前台页面模块与后台数据库两大部分组成;前后台中采用java编程工具及MySQL作为基本数据存储库;后台上使用MYSQL为程序编写平台以及提供简单快捷代码完成操作,运行时只需将源代码烧录到服务器端即可完成界面显示功能,因为基于B/S结构可以较为清晰地看到系统处理的业务,能够及时的让管理者做出决定,从而降低了企业遭受损失的风险[13]。
3.4.2 数据库物理设计
根据E-R图,设计每张表的变量名。
以下是本课题开发设计的主要数据表
学生考勤数据表,如表3.1所示,用于迟到次数、旷课天数和考勤日期等信息。
表3.1:学生考勤表
字段名称 | 类型 | 字段长度 | 字段说明 | 是否主键 | 默认值 |
ID | bigint | 主键 | 是 | ||
Addtime | timestamp | 创建时间 | 否 | Current_TIMESTAMP | |
Kaoqinbianhao | varchar | 200 | 考勤编号 | 否 | |
Xueshengxuehao | varchar | 200 | 学生学号 | 否 | |
Xueshengmingzi | varchar | 200 | 学生名字 | 否 | |
Kuangketianshu | int | 旷课天数 | 否 | ||
Chidaocishu | varchar | 200 | 迟到次数 | 否 | |
Kaoqinriqi | date | 考勤日期 | 否 | ||
Jiaoshigonghao | varchar | 200 | 教师工号 | 否 | |
Jiaoshimingzi | varchar | 200 | 教师名字 | 否 |
课程分类表,如表3.2所示,用于课程的创建时间和课程分类的信息。
表3.2:课程分类表
字段名称 | 类型 | 字段长度 | 字段说明 | 是否主键 | 默认值 |
ID | bigint | 主键 | 是 | ||
Addtime | timestamp | 创建时间 | 否 | Current_TIMESTAMP | |
Kechengfenlei | varchar | 200 | 课程分类 | 否 |
学生成绩表,如表3.3所示,用于评分分数、日期和成绩详情等信息。
表3.3:学生成绩表
字段名称 | 类型 | 字段长度 | 字段说明 | 是否主键 | 默认值 |
ID | bigint | 主键 | 是 | ||
Addtime | timestamp | 创建时间 | 否 | Current_TIMESTAMP | |
Chengjibianhao | varchar | 200 | 成绩编号 | 否 | |
Kemumingcheng | varchar | 200 | 课程名字 | 否 | |
Kemuleibie | varchar | 200 | 课程类别 | 否 | |
Pingfenfenshu | float | 评分分数 | 否 | ||
Banjipaiming | int | 班级排名 | 否 | ||
Pingfenriqi | datetime | 评分日期 | 否 | ||
Chengjixiangqing | longtext | 4294967295 | 成绩详情 | 否 | |
Xueshengxuehao | varchar | 200 | 学生学号 | 否 | |
Xueshengxingming | varchar | 200 | 学生名字 | 否 | |
Jiaoshigonghao | varchar | 200 | 教师工号 | 否 | |
Jiaoshimingzi | varchar | 200 | 教师名字 | 否 |
教师表,如表3.4所示,用于教师工号、姓名和密码等信息。
表3.4:教师表
字段名称 | 类型 | 字段长度 | 字段说明 | 是否主键 | 默认值 |
ID | bigint | 主键 | 是 | ||
Addtime | timestamp | 创建时间 | 否 | Current_TIMESTAMP | |
Jiaoshigonghao | varchar | 200 | 教师工号 | 否 | |
Jiaoshimingzi | varchar | 200 | 教师名字 | 否 | |
Mima | varchar | 200 | 账号密码 | 否 | |
Xingbie | varchar | 200 | 教师性别 | 否 | |
Touxiang | varchar | 200 | 选择头像 | 否 | |
Nianling | int | 教师年龄 | 否 | ||
Shenfenzhenghao | varchar | 200 | 教师身份证号 | 否 | |
Dianhuahaoma | varchar | 200 | 电话号码 | 否 | |
Jianjie | longtext | 4294967295 | 简介 | 否 |
学生表,如表3.5所示,用于学生学号、姓名和密码等信息。
表3.5:学生表
字段名称 | 类型 | 字符长度 | 字段说明 | 是否主键 | 默认值 |
ID | bigint | 主键 | 是 | ||
Addtime | timestamp | 创建时间 | 否 | Current_TIMESTAMP | |
Xueshengxuehao | varchar | 200 | 学生学号 | 否 | |
Xueshengmingzi | varchar | 200 | 学生名字 | 否 | |
Mima | varchar | 200 | 账户密码 | 否 | |
Xingbie | varchar | 200 | 学生性别 | 否 | |
Touxiang | varchar | 200 | 选择头像 | 否 | |
Zhuanye | varchar | 200 | 学生的专业 | 否 | |
Banji | varchar | 200 | 学生的班级 | 否 | |
Nianling | int | 学生的年龄 | 否 | ||
Shenfenzhenghao | varchar | 200 | 学生身份证号 | 否 | |
Dianhuahaoma | varchar | 200 | 电话号码 | 否 |
4 系统功能的具体实现
4.1 系统功能模块
系统首页,展示了学校情况,公告内容,后台管理等,如图4.1所示。
在课程列表页面中可以查看的到课程的相关信息,能够知道所授课程教师和课程的相关介绍等。
实现过程如下:
通过点击导航栏上的课程信息,利用$http.get方法调用'kechengxinxi/list'接口,能够获取到数据库中kechengxinxi数据表中的所有数据,从而进入到课程信息的界面,如图4.2所示。
代码如下:
在本人的信息页面中通过写入自己的信息进行更新,如图4.3所示。
实现过程如下:
学生在个人信息列表,点击修改,在center文件夹中利用 $http.post方法后端进行联系,后端根据调用this.userTableName + '/update'接口,对数据库中的xuesheng数据表修改。
核心代码实现如下: