小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便捷地获取和传播,同时具有出色的使用体验。尤其拥抱微信生态圈,让微信小程序更加的如虎添翼,发展迅猛。
MySQL是一个真正的多学生、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他应用软件的数据库后端的开发工作。此外,学生可利用许多语言编写访问MySQL数据库的程序。作为开放源代码运动的产物之一,MySQL关系数据库管理系统越来越受到人们的青睐,应用范围也越来越广。速度和易用性使MySQL特别适用于Web站点或应用软件的数据库后端的开发工作。
MYSQL数据库具有以下特点:
1、C和C ++中使用和测试,以确保源代码的编译器的便携性和灵活性。
2、支持多种操作系统AIX的,FreeBSD下,HP-UX,Linux和Mac OS中,Novell公司的Netware,OpenBSD系统,OS/2裹时,Solaris,Windows等。
3、提供了用于不同的编程语言的API。编程语言,如C,, C ++,Python和Java的,的Perl,PHP,埃菲尔铁塔,Ruby和Tcl的。
4、以及使用的CPU资源来支持多线程。
5、算法优化查询SQL,切实提高搜索速度。
6、网络上的客户端和服务器可以用来编程任何独立的编程环境,也有中国,GB2312,BIG5,日文写作,一般基金,用于支持多国语言,并且可以嵌入在数据表和其他软件shift_jis访问柱可以用作的名称。
7、TCP / IP,ODBC和JDBC数据库,并提供连接到其他。
8、管理工具的管理,控制和优化数据库的操作。
9、可以数以千万计的记录在一个大的数据库。
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
DCloud公司拥有800万开发者、数百万应用、12亿手机端月活学生、数千款uni-app插件。
uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序开发框架更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目,你都可以快速交付,不需要转换开发思维、不需要更改开发习惯。
SSM框架,是Spring+Spring MVC+MyBatis的缩写,这个是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。
1.Spring简介
Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
A.控制反转(IOC)是什么呢?
IOC:控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。
B.面向切面(AOP)又是什么呢?
首先,需要说明的一点,AOP只是Spring的特性,它就像OOP一样是一种编程思想,并不是某一种技术,AOP可以说是对OOP的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。
2.Spring MVC简介
Spring MVC属于Spring framework的后续产品,已经融合在Spring Web Flow里面,它原生支持的Spring特性,让开发变得非常简单规范。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
3.MyBatis简介
MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。可以这么理解,MyBatis是一个用来帮你管理数据增删改查的框架。
通过对本宿舍管理系统小程序实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。
3.1.1技术可行性
本宿舍管理系统小程序后端采用SSM框架进行开发,是一种成熟的框架,开发有很多教程的,微信开发也有很多教程,并且网络上很多免费的教程。
因此,宿舍管理系统小程序在开发技术上具有很高可行性,且开发人员掌握了一定的开发技术,所以此系统的开发技术具有可行性。
3.1.2经济可行性
本宿舍管理系统小程序采用的软件都是开源的,这样能够削减很多的精力和资源,降低开发成本。同时对计算机的配置要求也极低,即使是淘汰下来的计算机也能够满足需要,因此,本系统在经济上是完全具有可行性的,所以在经济上是十分可行的。
3.1.3操作可行性
本宿舍管理系统小程序的界面简单易操作,学生只要平时有在用过电脑,都能进行访问和操作。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的,因此在操作上具有很高的可行性。
综上所述,此系统开发目标已明确,在技术、经济和操作方面都具有很高的可行性,并且投入少、功能完善、管理方便,因此系统的开发是完全可行的。
3.2.1 系统安全性
此宿舍管理系统小程序要严格控制管理权限,具体要求如下:
(1)要想对宿舍管理系统小程序进行管理,首先要依靠学生名和密码在系统中登陆,无权限的学生不可以通过任何方式登录系统和对系统的任何信息和数据进行查看,这样可以保证系统的安全可靠性和准确性。
(2)在具体实现中对不同的权限进行设定,不同权限的学生在系统中登陆后,不可以越级操作。
3.2.2 数据完整性
(1)所有记录信息要保持全面,信息记录内容不可以是空。
(2)各种数据间相互联系要保持正确。
(3)相同数据在不同记录中要保持一致。
目前,界面设计已经成为对软件质量进行评价的一条关键指标,一个好的学生界面可以使学生使用系统的信心和兴趣增加,从而使工作效率提高。微信小程序页面尽量简洁,让页面清爽,访问速度能提升上去,访问服务端接口的时候相应更快更迅捷。
1.输出设计
输出是由电脑对输入的基本信息进行解决,生成高质量的有效信息,并使之具有一定的格式,提供给管理者使用,这是输出设计的主要责任和目标。
系统开发的过程与实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计。这是由于输出表格与使用者直接相联系,设计的目的应当是确保使用者可以很方便的使用输出表格,并且可以将各部门的有用信息及时的反映出来。输出设计的准绳是既要整体琢磨不同管理层的所有需要,又要简洁,不要提供给学生不需要的信息。
2.输入设计
输入数据的收集和录入是比较麻烦的,需要非常多的人力和一定设备,而且经常出错。一旦输入系统的数据不正确,那么处理后的输出就会扩大这些错误,因此输入的数据的准确性对整个系统的性能起着决定性意义。
输入设计有以下几点原则:
1)输入量应尽量保持在能够满足处理要求的最低限度。输入量越少,错误率就会越少,数据的准备时间也越少。
2)应尽可能的使输入的准备以及输入的过程进行时比较方便,这样使错误的发生率降低。
3)应尽量早检查输入数据(尽量接近原数据发生点),以便使错误更正比较及时。
4)输入数据尽早地记录成其处理所需的形式,以防止数据由一种介质转移到另一种介质时需要转录而可能发生的错误。
图3-3登录流程图
图3-4修改密码流程图
本系统后台采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要学生能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:
图4-1系统工作原理图
设计的管理员功能结构图如下图所示:
图4-2管理员功能结构图
设计的学生功能结构图如下图所示:
图4-2学生功能结构图
4.3.1数据库实体
概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。
概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映学生信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持学生的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为学生理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,学生可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与学生的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:
(1)学生信息的实体属性图如下:
图4.12 学生信息实体属性图
(2)宿舍实体属性图如图4.13所示:
图4.13 宿舍实体属性图
(3)班级信息实体属性图如图4.14所示:
图4.14 班级信息实体属性图
4.3.2数据库设计表
宿舍管理系统小程序需要后台数据库,下面介绍数据库中的各个表的详细信息:
表4.1 班级
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
banji
varchar(200)
否
班级
表4.2 报修处理
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
baoxiushebei
varchar(200)
是
NULL
报修设备
leixing
varchar(200)
是
NULL
类型
tupian
varchar(200)
是
NULL
图片
baoxiuriqi
varchar(200)
是
NULL
报修日期
weixiufankui
varchar(200)
是
NULL
维修反馈
weixiujindu
varchar(200)
是
NULL
维修进度
gengxinriqi
datetime
是
NULL
更新日期
xuehao
varchar(200)
是
NULL
学号
xueshengxingming
varchar(200)
是
NULL
学生姓名
sushehao
varchar(200)
是
NULL
宿舍号
banji
varchar(200)
是
NULL
班级
userid
bigint(20)
是
NULL
学生id
表4.3 报修信息
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
baoxiushebei
varchar(200)
否
报修设备
leixing
varchar(200)
否
类型
tupian
varchar(200)
是
NULL
图片
baoxiuneirong
longtext
是
NULL
报修内容
baoxiuriqi
date
是
NULL
报修日期
xuehao
varchar(200)
是
NULL
学号
xueshengxingming
varchar(200)
是
NULL
学生姓名
banji
varchar(200)
是
NULL
班级
sushehao
varchar(200)
是
NULL
宿舍号
shouji
varchar(200)
是
NULL
手机
sfsh
varchar(200)
是
否
是否审核
shhf
longtext
是
NULL
审核回复
userid
bigint(20)
是
NULL
学生id
表4.4 公告信息评论表
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
refid
bigint(20)
否
关联表id
userid
bigint(20)
否
学生id
nickname
varchar(200)
是
NULL
学生名
content
longtext
否
评论内容
reply
longtext
是
NULL
回复内容
表4.5 公告信息
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
gonggaobiaoti
varchar(200)
否
公告标题
leixing
varchar(200)
否
类型
tupian
varchar(200)
是
NULL
图片
neirong
longtext
是
NULL
内容
faburiqi
date
是
NULL
发布日期
表4.6 离宿申请
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
sushehao
varchar(200)
是
NULL
宿舍号
susheleixing
varchar(200)
是
NULL
宿舍类型
tupian
varchar(200)
是
NULL
图片
xuehao
varchar(200)
是
NULL
学号
xueshengxingming
varchar(200)
是
NULL
学生姓名
banji
varchar(200)
是
NULL
班级
lisushijian
date
否
离宿时间
lisushenqing
longtext
是
NULL
离宿申请
shenqingriqi
date
是
NULL
申请日期
sfsh
varchar(200)
是
否
是否审核
shhf
longtext
是
NULL
审核回复
userid
bigint(20)
是
NULL
学生id
表4.7 收藏表
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
userid
bigint(20)
否
学生id
refid
bigint(20)
是
NULL
收藏id
tablename
varchar(200)
是
NULL
表名
name
varchar(200)
否
收藏名称
picture
varchar(200)
否
收藏图片
表4.8 宿舍安排
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
sushehao
varchar(200)
是
NULL
宿舍号
susheleixing
varchar(200)
是
NULL
宿舍类型
tupian
varchar(200)
是
NULL
图片
loudong
varchar(200)
是
NULL
楼栋
weizhi
varchar(200)
是
NULL
位置
kezhurenshu
varchar(200)
是
NULL
可住人数
xuehao
varchar(200)
是
NULL
学号
xueshengxingming
varchar(200)
是
NULL
学生姓名
banji
varchar(200)
是
NULL
班级
anpairiqi
date
是
NULL
安排日期
userid
bigint(20)
是
NULL
学生id
表4.9 宿舍评分
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
sushehao
varchar(200)
是
NULL
宿舍号
susheleixing
varchar(200)
是
NULL
宿舍类型
tupian
varchar(200)
是
NULL
图片
loudong
varchar(200)
是
NULL
楼栋
xuehao
varchar(200)
是
NULL
学号
xueshengxingming
varchar(200)
是
NULL
学生姓名
banji
varchar(200)
是
NULL
班级
jianchaneirong
varchar(200)
是
NULL
检查内容
shifouzhengjie
varchar(200)
是
NULL
是否整洁
shifouweigui
varchar(200)
是
NULL
是否违规
pingfen
int(11)
是
NULL
评分
jianchajieguo
varchar(200)
是
NULL
检查结果
jianchariqi
date
是
NULL
检查日期
userid
bigint(20)
是
NULL
学生id
表4.10 宿舍信息
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
sushehao
varchar(200)
否
宿舍号
susheleixing
varchar(200)
否
宿舍类型
tupian
varchar(200)
是
NULL
图片
loudong
varchar(200)
是
NULL
楼栋
weizhi
varchar(200)
是
NULL
位置
kezhurenshu
int(11)
是
NULL
可住人数
beizhu
varchar(200)
是
NULL
备注
表4.11 管理员表
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
username
varchar(100)
否
学生名
password
varchar(100)
否
密码
role
varchar(100)
是
管理员
角色
addtime
timestamp
否
CURRENT_TIMESTAMP
新增时间
表4.12 晚归登记
字段
类型
空
默认
注释
id (主键)
bigint(20)
否
主键
addtime
timestamp
否
CURRENT_TIMESTAMP
创建时间
xuehao
varchar(200)
是
NULL
学号
xueshengxingming
varchar(200)
是
NULL
学生姓名
touxiang
varchar(200)
是
NULL
头像
banji
varchar(200)
是
NULL
班级
sushehao
varchar(200)
是
NULL
宿舍号
wanguiyuanyin
varchar(200)
是
NULL
晚归原因
wanguishijian
datetime
是
NULL
晚归时间
beizhu
varchar(200)
是
NULL
备注
userid
bigint(20)
是
NULL
学生id
表4.13 学生
5.1.1 学生信息管理
管理员可以管理学生信息,可以对通过微信小程序端注册的学生信息修改删除。具体界面的展示如图5.1所示。
图5.1 学生信息管理界面
5.1.2 公告信息管理
管理员可以对公告信息进行添加,修改删除查询操作。具体界面如图5.2所示。
图5.2 公告信息管理界面
5.1.3 宿舍信息管理
系统管理员可以查看宿舍信息,并且可以对宿舍信息进行添加修改删除操作。界面如下图所示:
图5.3 宿舍信息管理界面
5.1.4 晚归登记管理
系统管理员可以查看晚归登记,并且可以对晚归登记的信息进行修改删除操作。界面如下图所示:
图5.4 晚归登记管理界面
5.2.1 学生注册
小程序学生是需要注册才可以进行登录的。界面如下图所示:
图5.5 注册界面
5.2.2 小程序首页
小程序首页会显示公告信息,宿舍信息还有其他信息,通过下滑就可以获取到。界面如下图所示:
图5.6 小程序首页
5.2.2 离宿申请
学生可以提交离宿申请。界面如下图所示:
图5.6 离宿申请
5.2.2 我的
小程序最下面是导航模块,点击我的,可以出现关于我的相关功能。界面如下图所示: