注:展示部分文档内容和系统截图,需要完整的视频、代码、文章和安装调试环境请私信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数据表修改。
核心代码实现如下: