SpringBoot+MySQL的一套非常适用于小白学习、课程设计的一套系统,需要本套数据库、代码、文档等请私信【基于SpringBoot的学生信息管理系统】
系统开发相关技术
B/S结构
B/S结构是将浏览器和服务器结合的构架方式。是基于WEB的网络结构模式,其前身是C/S结构[4]。在B/S结构中,使用者的工作界面的实现是基于WWW浏览器,在前端实现的主要是UI展示,在服务器后端完成具体事物逻辑,这就是三层3-tier的结构。在这种结构下,使客户端的电脑在和极大程度的降低,也在一定程度上将系统预防和升级的工作和成本压力减少了,从而使客户的总体的成本降低。在当前的形势,成本较低且不难掌控的方式,就是基于Internet/Intranet模式下,在局域网中建立B/S结构。因为这种方式能够在任何地点,任何人员以类似于LAN, WAN, Internet/Intranet等接入方式对相同的数据库进行访问和实现。其服务器数据库的安全性完全可以保证,并且能够高效率的对数据库和管理权限进行保护[5]。在B/S结构出现以后,对于像JAVA这样的面向对象的程序设计语言,显得高速、高效且易于掌握。
B/S结构的出现,是因为在Internet和WWW被普遍应用以后,之前所使用的C/S结构和主机/终端方式,已经满足不了现在全球网络的开放、传播迅速以及信息共享等的新形势[6]。B/S结构有很多优点,其中最明显的优点就是:客户不是直接浏览Internet上的文档、声音、图片、动画、视频等信息,而是通过WWW浏览器实现的,客户所浏览的信息是基于WEB端产生的,因为这些数据在服务器中储存,而WEB端可以有多种多样的方式与数据服务器之间建立连接,从而实现信息的交换。用户一般都是在WEB端上下载所需要的程序到本地来安装使用,不需要通过其他的用户程序,WEB服务器在这下载的时候会将数据等信息交给数据库服务器来执行,处理后还会返回给WEB端。
B / S架构,包括表示逻辑层的控制逻辑层,数据层,三层之间的相互关联的特性,同时三层之间的关系是比较独立的[11],这里我们简单介绍一下:
1.表示逻辑层,逻辑层是服务请求的主要功能,然后将服务请求发送到Web服务器,然后在Web服务器上识别请求信息,服务器识别后,在使用HTTP请求会收到返回给客户端的信息,客户端收到返回的请求信息,信息显示在浏览器中。
2.控制逻辑层,控制逻辑层的主要任务是接收用户的请求,接收用户数据的请求,首先需要执行相应的程序和数据库连接,然后请求信息数据处理,数据处理一个请求,最终结果处理后返回给Web服务器,最后再次通过Web服务器将被认为是返回给客户端的最终结果。
3.数据层,服务器接收来自Web服务器主任务的请求,执行数据库操作,包括查询,修改,删除等,最后将数据库操作结果返回给网络服务器。
MySQL数据库介绍
MySQL表连接到我们的快速低级别(ISAM)是专为。无论如何,决定经过一番测试开发人员:mSQL的速度非常快,需要他们,不灵活。创建使用相同的API接口,一个新的SQL数据库接口与mSQL几乎导致该API编写mSQL的轻松移植到MySQL的代码被设计为允许使用第三方。
MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、JSP、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。
MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它具有功能强大、使用简单、管理方便、运行速度快、安全可靠性强、多线程、跨平台性、完全网络化、稳定性等优点,特别适用于Web站点或应用软件的数据库后端的开发工作。另外,用户可利用许多语言编写访问MySQL数据库的程序。作为开放源代码运动的产物之一,MySQL关系数据库管理系统越来越受到人们的青睐,应用范围也越来越广。速度和易用性使MySQL特别适用于Web站点或应用软件的数据库后端的开发工作。
JSP语言开发工具
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下
(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response 网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config 代码片段配置对象;page JSP网页本身; exception 针对错误网页,未捕捉的例外。
JSP可放在服务器上运行,具有组件可以重用,页面开发简化,存储增加,安全性高等优点。
初步设计方法与实施方案
软件体系结构方案:采用B/S模式。B/S结构(Browser/Server结构)即浏览器服务器结构。采用B/S结构是因为该结构在功能拓展和维护方面简单、方便,只需要增加或更改网页,并且B/S结构是以浏览为主,录入简单。而学生信息管理系统网站就是通过web浏览器访问,选用B/S模式最为合适。
操作系统方案:Windows 7(旗舰版)操作系统,该系统可以兼容需要的软件,并且具有良好的运行速度,界面良好。
后台数据库:选用MySQL。由于涉及商品、订单等信息数据量较多,故选用MySQL数据库。并且该数据库具有良好的安全性。
开发工具:选用MyEclipse。因为该系统需要利用网络登录编辑信息,故利用该软件开发。
第三章 系统需求分析
3.1 系统可行性分析
经济可行性:由于本系统的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台普通的电脑便可,所以不用考虑到经济问题。
技术可行性:本系统的开发使用PHP作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。
运行可行性:本系统为一个基于JSP技术的学生成绩管理系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
系统业务需求分析
业务描述
系统功能需求分析是在了解企业的现状、目标、技术和实力等各个因素的前提下,对其进行深入分析,了解客户要什么功能等,然后制定出可行的学生信息管理系统的设计与实现功能分工。这不但是系统开发过程中的第一步,也是至关重要的一步,也是平台开发中的一个不可或缺的环节。
(1)对学员相关数值的导入性能。①完成对学员基础消息的导入;②实现对学生成绩信息的输入。
(2)对学生有关数据的更新功能:由管理员进行信息收集,经过对信息资料的处理,革新学员消息管理体系内的有关消息(涵盖学员基础消息与学员成绩消息)。
(3)对学员消息的查找性能:管理者能够经过个人账号与密码在互联网中,对全部学员的消息(涵盖学员的资料消息、成绩消息)实施查找。
(4)对班级、学科与老师消息的简洁管理。
(5)对客户密码的管理。
系统功能需求分析
角色分析
(1)用户登陆
学生信息管理系统采用用户名及密码验证模式,进入学生信息管理系统前,用户必须在登陆页面输入用户名及密码,只有验证通过的用户方可进入学生信息管理系统操作主页面。
(2)学生信息管理
包括3个功能模块:学生个人信息的添加、学生信息的查询以及学生信息的修改与删除。
(3)课程信息管理
包括3个功能模块:课程基本添加与删除处理、成绩查询处理以及学生选课信息的查询处理。
(4)用户管理
包括功能模块:用户信息查询以及用户的删除与处理等。
功能组成
该学生信息管理系统必须具备以下功能。
1.从管理者视角分析,完成的性能为:
(1)对学员相关数值的导入性能。①完成对学员基础消息的导入;②实现对学生成绩信息的输入。
(2)对学生有关数据的更新功能:由管理员进行信息收集,经过对信息资料的处理,革新学员消息管理体系内的有关消息(涵盖学员基础消息与学员成绩消息)。
(3)对学员消息的查找性能:管理者能够经过个人账号与密码在互联网中,对全部学员的消息(涵盖学员的资料消息、成绩消息)实施查找。
(4)对班级、学科与老师消息的简洁管理。
(5)对客户密码的管理。
2.从一般客户(学员)的视角分析,完成的性能为:
(1)在校学员,能够经过个人的学号与密码,在互联网中,对个人消息(涵盖个人资料消息、成绩消息)实施查找。
(2)对客户密码的管理。
数据需求分析
系统设计是一个把软件需求转换成用软件系统表示的过程[9]。在对学生信息管理系统全面分析调查的基础上,制定出学生信息管理系统的总体规划。系统设计包括系统总体设计、系统详细设计、系统数据库设计、系统开发工具、开发技术和开发模式等。
从数据流图出发,对数据流图进行分析,得出的层次化的模块结构图。
系统详细设计
系统设计规则与运行环境
(1)系统设计的总体规则
无论任何系统都要有它自己的设计规则。该系统也一样,它的主要设计规则有:
简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。
针对性:该系统设计是基于JSP技术的学生成绩管理系统的定向开发设计,所以具有专业突出和很强的针对性。
实用性:本系统主要包括任课老师、班主任、管理员、学生四类角色,主要功能包括学生管理、教师管理、成绩管理,具有良好的实用性。
(2)运行环境
本系统是一个B/S版的应用程序,需要在服务器上部署MySQL数据库,其他的客户端通过运行程序既可。
本系统采用自上往下的方法开发。了解需求后,基本定位如下功能:本课题要求实现学生信息管理系统。本系统主要包括任课老师、班主任、管理员、学生四类角色。主要功能包括学生管理、教师管理、成绩管理。
系统功能架构设计
本系统设计了管理员角色、教师角色、学生角色三种,其中管理员角色的主要职责是管理班级、老师、成绩、和学生,教师角色主要是成绩的录入、查看班级和课程,最后的学生角色只有查看相关信息和查看自己的成绩,职业学生信息管理系统因各个学校的教学模式不同所以跟平常的管理系统会有一些特别之处。
系统功能模块设计
软件架构设计要达到如下的目标:
1.可行性(Feasible)。架构的可行性是系统设计的基础。
2.可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。
3.安全行(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。
4.可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。
5.可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从面对现有系统进行功能和性能的扩展。
6.可维护性(Maintainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。
7.可升级性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。
8.客户体验(Customer Experience)。系统必须易于使用。最终用户很可能是不具有计算机专业技术的人员。
通过对市场的调研并进行分析,了解到了系统的需求。本系统是基于JSP的学生成绩管理系统,本系统主要包括任课老师、班主任、管理员、学生四类角色。主要功能包括学生管理、教师管理、成绩管理。
数据库设计
数据库设计规范
在概念设计中,通常用四种方法:
自顶向下:首先定义全局概念结构的框架,然后逐步细化;自底向上:首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构;逐步扩张: 首先定义最核心的概念结构,然后向外扩充,直至总体概念结构;混合策略: 即自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念。结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
在物理结构设计阶段首先分两步走:确定数据库的物理结构,在关系数据库中主要是指存取方法和存储结构。对物理结构的评价是时间和空间效率。选取正确的关系模式存取方法,常用的有:存取索引方法、聚簇存取、HASH存取方法等。
数据库概念模型
关系型数据库是目前应用最广泛的数据库。既然是面向对象系统设计,数据库设计当然也要是面向对象的。现在要考虑如何对类进行持久化操作,即如何将对象类映射到关系数据库的二维表。目前可以采用数据库建模工具来实现,像PowerDesigner、Rose等。
然后根据具体的功能需求,对本系统的E-R图进行细化从而得到几种实体—关系模型,以下为部分实体—关系模型。
数据表设计
本系统采用的是MySQL数据库管理系统,建立的数据库名为student。
1、course表(课程表)
课程表存放课程信息的,系统在查看、增加、清除、更改有关的数据,其实这些操作就是对课程表数据的更新操作,建立此表对于数据的操作更加方便,如表4-1所示,
表4-1 course表
名称 长度 数据类型 主键 描述
Id 200 int Yes 编号
name 200 int No 课程名称
2、course_schedule表(老师班级课程关系表)
设计此表是用来存放课程信息、班级信息与老师之间的关系,MySQL数据库里的数据之间都有关联,其中的数据并不是所有的都堆在一起,这样就可以通过此表来了解老师、班级、课程之间的关系,当我们查询信息时只需要知道其中之一即可知道另外两个与之相对应的信息,这就是MySQL数据库的特点之一,用起来也特别的方便,其中具体的字段见表4-2所示。
表4-2 course_schedule表
名称 长度 数据类型 主键 描述
Id_ 200 Int Yes 编号_id
Coursexq_ 200 Int No 课程学期
Score_ 200 Int No 课程学分
Teamxf_ 200 Int No 班级_ID
courseId_ 200 Int No 课程_ID
teacherId_ 200 Int No 老师_ID
3、mark表(成绩表)
设计此表是用来保存职业学院学生的课程成绩,我们在查看学生有关的数据、增加有关学生的数据、清除有关学生的数据、更改有关学生的数据,其实这些操作就是对学生表数据的更新操作,建立此表对于我们数据的操作更加方便,其中有ID、分数、学生名称、课程名称等字段,如表4-3所示。
表4-3 mark表
名称 长度 数据类型 主键 描述
Id_ 200 Int Yes 编号_id
Score_ 200 Int No 分数_id
studentId_ 200 Int No 学生_ID
courseId_ 200 Int No 课程_ID
4、student表(学生信息表)
设计此表是用来存放学生的一些数据,我们在查看学生信息、添加学生信息、删除学生信息、修改学生信息的操作中就是对学生信息表的增删改查的一些操作,建立此表对于我们数据的操作更加方便,其中有ID、学号、名称、性别、入学时间、生日、所在班级等字段,如表4-4所示。
表4-4 student表
名称 长度 数据类型 主键 描述
id_ 200 int Yes 编号
code_ 200 int Yes 学号
name_ 200 int No 名字
enroll_Date 200 int No 入学时间
birth_day 200 int No 生日
sex 200 int No 性别
team_Id 200 int No 班级ID
5、teacher表(老师信息表)
设计此表是用来保存老师的各种信息,我们在查看老师信息、添加老师信息、删除老师信息、修改老师信息的操作中就是对老师信息表的增删改查的一些操作,建立此表对于我们数据的操作更加方便,其中有ID、名称等字段,如表4-5所示。
表4-5 teacher表
名称 长度 数据类型 主键 描述
id_id 200 int Yes 编号_id
name_id 200 int No 名称_id
6、teacher_course表(老师课程关系表)
设计此表是用来存放老师跟课程之间关系的表,MySQL数据库里的数据之间都有关联,其中的数据并不是所有的都堆在一起,这个表就是把老师和课程的两张表建立联系,这样我们可以很轻松的知道哪个老师教着什么课程,或者某一个课程去有哪几个老师在授课。如表4-6所示。
表4-6 teacher_course表
名称 长度 数据类型 主键 描述
course_Id 200 Int Yes 课程_ID
teacher_Id 200 Int Yes 老师_ID
7、team表(班级表)
设计此表是用来保存班级的各种信息,我们在查看班级信息、添加班级信息、删除班级信息、修改班级信息的操作中就是对班级表的增删改查的一些操作,建立此表对于我们数据的操作更加方便,其中有ID、班级名称等字段,如表4-7所示。
表4-7 班级表
名称 长度 数据类型 主键 描述
id_id 200 int Yes 编号_id
name_id 200 int No 班级名_id
8、user表(用户表)
设计此表是用来存放用户的各种数据,我们在查询有哪些用户、增加用户信息、删除用户信息、修改用户信息的操作中就是对用户表的增删改查的一些操作,建立此表对于我们数据的操作更加方便,如表4-8所示。
表4-8 用户信息表
名称 长度 数据类型 主键 描述
id_id 200 int Yes 编号_id
name_id 200 int No 用户名_id
pass_word 200 int No 密码_id
系统测试
软件测试在软件生命周期中占据重要的地位,它是所有工程学科的基本组成单元,是软件开发的重要部分。在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
自有程序设计的那天起测试就一直伴随着,统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。
安全测试
安全测试用于检测系统防范各种非法入侵的能力。通过测试人员扮演非法入侵者,检查出系统可能存在的安全漏洞,提高系统安全防范等级。本系统安全测试主要从以下几点完成:
1)系统登陆安全测试。客户关系管理系统登录时,无论是何等级用户都必须使用正确的账号和密码登录,而无效的账号或密码是无法登陆系统的。
2)系统管理权限安全测试。通过分别使用管理员级、用户级账号进行系统操作,没发现有任何越权或权限混乱现象。
3)系统数据安全性。本系统对所有账号、密码数据都进行加密处理。对数据库进行伪文件处理(数据库文件后缀名更改成其它格式文件),且具有良好的数据库备份和恢复机制。