旅游信息管理系统是对旅游信息资源进行管理的系统。随着旅游信息在种类和数量上的增多,以及涉及的方面相对较广,旅游信息的管理难度也在增大。伴随计算机的普及,人们也愿意并习惯通过计算机来获取信息资源,人们可以在最短的时间内获信息,然后拟定适合自己的旅游方案,既节省人力物力又提高工作效率,达到了事半功倍的效果。
本次毕业设计开发的旅游信息管理系统就提供了一个操作的平台,可以将信息进行分类管理,并以旅游信息所涉及的具体方面作为模块划分的依据。具体内容包括:系统管理员模块、旅游信息模块、酒店信息模块、交通信息模块、常见问题解决模块、大连特色节日模块和退出系统模块等,并在这些模块中完成了添加、修改、删除、查询等功能。
关键词:Java,Mysql,旅游信息管理
第一章 绪论
1.1 开发背景
旅游信息推荐系统的特点是从旅游信息的角度出发,用集中的数据库将几乎所有与旅游信息相关的数据统一管理起来,形成了集成的信息源。有好的用户界面,强有力的报表生成工具、分析工具和信息的共享使得物品管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业物品规划和政策。
1.2 开发意义
随着社会的高速发展,人们生活水平的不断提高,以及工作节奏的加快,旅游逐渐成为一个热门的话题,因为其形式的多样,涉及的面比较广,成为人们放松压力,调节情绪的首要选择。
我国的计算机技术诞生于20世纪40年代,起步晚但是发展非常迅速,虽然把计算机引入管理的领域也就只有短短的30年,但是,却给管理领域带来了翻天覆地的变化。伴随计算机的普及,人们也愿意并习惯通过计算机来获取信息资源,人们可以在最短的时间内获取旅游信息,然后拟定适合自己的旅游方案,大大的节省自己的时间、精力,获得最大限度的身心满足。
传统的管理方法采用的是人管理人的方法,由相关人员去制定一些规定 并监督执行,这当然会给管理带来很多的主观性,而传统的旅游信息管理也是采用人力的自然管理和纸制记录。在查询,更新时都是由人一条一条的记录,这样不仅需要大量的人力还需要大量的办公用品。这必然造成对人力和物力的浪费,而且由于工作量大并且繁琐,就会带来效率方面的低下,而这些就会无形地使利润下滑。
旅游信息管理系统正是在这样的背景下应运而生了。现实的要求是旅游信息管理需要一个既可以节省人力物力又可以节省财力,并且在同等时间的基础上提高效率,从而提高整个利润。旅游信息管理系统采取的是信息分类管理的理念,根据旅游所涉及的方方面面的具体要求进行系统开发的。
第二章 系统分析
2.1 系统的需求分析
本系统需满足以下几个方面的要求:
- 账号权限管理,分为管理员账号,游客账号
- 旅游新闻展示。
- 留言功能。
- 账号管理、地区管理、景区管理。
2.2 系统开发设计思想
系统采用前后端分离技术,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护;
系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
2.3系统开发步骤
旅游系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。
上述开发方式的主要优点是便于开发工作的组织和管理,并且可大大降低在线学习系统开发的复杂性。国内外许多系统开发的实例都证明这是一种行之有效的开发方式。
2.4 系统的主要技术
2.4.1 B/S系统的三层体系结构
在B/S的系统中,用户可以通过浏览器向分布在网络上的许多服务器发出请求。B/S结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
在B/S三层体系结构下,表示层(view)、功能层(controller)、数据层(model)被分割成三个相对独立的单元:
第一层--表示层:Web浏览器
在表示层中包含系统的显示逻辑,位于客户端。它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。
第二层--功能层:具有应用程序扩展功能的Web服务器
在功能层中包含系统的事务处理逻辑,位于Web服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,后台数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。
第三层--数据层:数据库服务器
在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新、删除功能,把运行结果提交给Web服务器。
从上面的分析中可以看出,B/S体系结构是把C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了Web服务器,于是由原来的C/S结构转变成B/S结构。
2.4.2springboot简介
SpringBoot是一种全新的框架,目的是为了简化Spring应用的初始搭建以及开发过程。该框架使用特定的方式(集成starter,约定优于配置)来进行配置,从而使开发人员不需要再定义样板化的配置。SpringBoot提供了一种新的编程范式,可以更加快速便捷地开发Spring项目,在开发过程当中可以专注于应用程序本身的功能开发,而无需在Spring配置上花太大的工夫。
SpringBoot基于Sring4进行设计,继承了原有Spring框架的优秀基因。SpringBoot并不是一个框架,而是一些类库的集合。maven或者gradle项目导入相应依赖即可使用SpringBoot,而无需自行管理这些类库的版本。
2.4.3springboot优点
1、为基于Spring的项目开发提供更快捷的入门体验:特别是对于刚开始使用Spring框架的开发人员,无需关心使用Spring框架都需要引入哪些jar包,无需关心Spring框架与其他框架整合时都需要哪些配置文件。SpringBoot会自动配置Spring。
2、无需手动管理依赖jar包的版本:SringBoot通过 spring boot starter管理其提供的所有依赖的版本,当升级SpringBoot时,这些依赖的版本也会随之升级,个人无需指定版本号,但是也可以自定义版本号覆盖SpringBoot的默认值。
3、自动配置,无需XML:SpringBoot尝试根据你添加的jar依赖自动配置你的应用。
4、嵌入式的Tomcat,无需部署war文件。传统的项目我们在启动或者部署的时候,需要将项目的war包放到服务器(如Tomcat、JBoss)的指定目录下,然后再启动服务器。而SpringBoot项目在启动时无需将war文件部署到服务器中。SpringBoot内置了Tomcat和Jetty容器。在服务器启动SpringBoot项目时可以通过jar指令直接启动, 在开发IDE中启动时只需运行Application类的main方法即可。
5、简化Maven配置:SpringBoot通过 spring boot starter管理jar包,无需手动配置jar包的版本。之前我们在进行jar包配置时,需要找到jar包的版本号,而在SpringBoot项目中,则无需去管理版本号。
2.4.4vue
vue是一套构建用户界面的框架。在我看来,渐进式代表的含义是:主张最少。每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。简单说就是对于vue中你不熟悉不太把握的模块或者功能,你可以不用它,或者你可以用你熟悉有把握的技术进行代替 。这样子看来是不是感觉很友好,相对于其他框架硬要求很少了,你可以逐渐性的使用框架。
为了实现前后端分离的开发理念,开发前端 SPA(single page web application) 项目,实现数据绑定,路由配置,项目编译打包等一系列工作的技术框架。
Vue有著名的全家桶系列,包含了vue-router(http://router.vuejs.org),vuex(http://vuex.vuejs.org), vue-resource(https://github.com/pagekit/vue-resource)。再加上构建工具vue-cli,sass样式,就是一个完整的vue项目的核心构成。
2.4.5vue优点
1、轻量级框架
只关注视图层,是一个构建数据的视图集合,大小只有几十kb
Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统
2、简单易学
国人开发,中文文档,不存在语言障碍,易于理解和学习
3、双向数据绑定
也就是所谓的响应式数据绑定。这里的响应式不是@media 媒体查询中的响应式布局,而是指vue.js会自动对页面中某些数据的变化做出同步的响应。
也就是说,vue.js会自动响应数据的变化情况,并且根据用户在代码中预先写好的绑定关系,对所有绑定在一起的数据和视图内容都进行修改。而这种绑定关系,就是以input 标签的v-model属性来声明的,因此你在别的地方可能也会看到有人粗略的称vue.js为声明式渲染的模版引擎。
这也就是vue.js最大的优点,通过MVVM思想实现数据的双向绑定,让开发者不用再操作dom对象,有更多的时间去思考业务逻辑。
4、组件化
在前端应用,我们是否也可以像编程一样把模块封装呢?这就引入了组件化开发的思想。
Vue.js通过组件,把一个单页应用中的各种模块拆分到一个一个单独的组件(component)中,我们只要先在父级应用中写好各种组件标签(占坑),并且在组件标签中写好要传入组件的参数(就像给函数传入参数一样,这个参数叫做组件的属性),然后再分别写好各种组件的实现(填坑),然后整个应用就算做完了。
5、视图,数据,结构分离
使数据的更改更为简单,不需要进行逻辑代码的修改,只需要操作数据就能完成相关操作
6、虚拟DOM
现在的网速越来越快了,很多人家里都是几十甚至上百M的光纤,手机也是4G起步了,按道理一个网页才几百K,而且浏览器本身还会缓存很多资源文件,那么几十M的光纤为什么打开一个之前已经打开过,已经有缓存的页面还是感觉很慢呢?这就是因为浏览器本身处理DOM也是有性能瓶颈的,尤其是在传统开发中,用JQuery或者原生的JavaScript DOM操作函数对DOM进行频繁操作的时候,浏览器要不停的渲染新的DOM树,导致页面看起来非常卡顿。
而Virtual DOM则是虚拟DOM的英文,简单来说,他就是一种可以预先通过JavaScript进行各种计算,把最终的DOM操作计算出来并优化,由于这个DOM操作属于预处理操作,并没有真实的操作DOM,所以叫做虚拟DOM。最后在计算完毕才真正将DOM操作提交,将DOM操作变化反映到DOM树上。
7、运行速度更快
像比较与react而言,同样都是操作虚拟dom,就性能而言,vue存在很大的优势
2.5.1 硬件设备及操作系统
服务器:inter Xeon e3(或与此相当的CPU)以上配置的高性能PC机,有网络接口卡(NIC),内存应在4g以上,硬盘在1T以上。数据库软件mysql,还可选用备份服务器。
操作系统:OpenSuSE
客户端:i3(或与此相当的CPU)以上配置的PC机,有网络接口卡(NIC),内存应在1g以上,硬盘在80G以上。Windows XP以上操作系统,安装Web浏览器。
2.5.2 系统开发工具
电脑配置:thinkpad品牌机CPU: i5 内存:DDR 2G 硬盘:150G
操作系统:win 10
开发环境:idea webstorm
Web服务平台:Tomcat 8.0
数据库:mysql 5.5
jdk:8.0
2.5.3 开发工具简介
(1) Idea概述
IDEA 全称 IntelliJ IDEA,是 Java 语言开发的集成环境,IntelliJ 在业界被公认为最好的 Java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(git、svn、github 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。
利用Idea我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
- Idea功能简介
智能的选取:在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取,IDEA就提供这种基于语法的选择,在默认设置中 Ctrl + W,可以实现选取范围的不断扩充,这种方式在重构的时候尤其显得方便。
1、丰富的导航模式:IDEA 提供了丰富的导航查看模式,例如 Ctrl + E 显示最近打开过的文件,Ctrl + N 显示你希望显示的类名查找框(该框同样有智能补充功能,当你输入字母后IDEA将显示所有候选类名)。在最基本的 Project 视图中,你还可以选择多种的视图方式。
2、 历史记录功能:不用通过版本管理服务器,单纯的 IDEA 就可以查看任何工程中文件的历史记录,在版本恢复时你可以很容易的将其恢复。
3、 JUnit 的完美支持
4、 对重构的优越支持:IDEA 是所有 IDE 中最早支持重构的,其优秀的重构能力一直是其主要卖点之一。
5、 编码辅助:Java 规范中提倡的 toString()、hashCode()、equals() 以及所有的 get/set 方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。
6、 灵活的排版功能:基本所有的 IDE 都有重排版功能,但仅有 IDEA 的是人性的,因为它支持排版模式的定制,你可以根据不同的项目要求采用不同的排版方式。
7、XML 的完美支持:XML 全提示支持:所有流行框架的 XML 文件都支持全提示,谁用谁知道。
8、动态语法检测:任何不符合 Java 规范、自己预定义的规范、累赘都将在页面中加亮显示。
9、代码检查:对代码进行自动分析,检测不符合规范的,存在风险的代码,并加亮显示。
10、对 JSP 的完全支持:不需要任何的插件,完全支持 JSP。
11、智能编辑:代码输入过程中,自动补充方法或类。
(2) Tomcat8.0概述
Tomcat8.0 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 8.0 支持最新的Servlet 3.0 和JSP 2.2 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
(3) mysql概述
MySQL是一个关系型数据库管理系统,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型系统的开发都选择MySQL作为数据库。
第三章 系统设计
3.1系统流程
与本系统相关的角色包括:
系统管理员:管理系统用户、角色与权限、拥有系统全部权限,保证系统正常运行。
3.2 系统功能模块的划分
软件所实现的功能强弱是衡量一个软件的最根本的标准。经过对系统的需求分析和实际应用需求,确定了本子系统的功能模块如图3.2所示:
图3.1 系统功能模块图
3.3数据库设计
3.3.1数据库需求分析
数据库的设计在一个系统中的作用十分重要,数据库建立的是否完善直接影响到你个系统的实现。数据库的设计既要满足用户的需求又要尽最大可能的降低数据的冗余,尽可能降低数据间的依赖,将他们分离。在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据,数据结构,以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础.
3.3.2数据库的逻辑设计
逻辑结构设计的原则如下:
(1) 尽可能的减少数据冗余和重复。
(2) 结构设计与操作设计相结合。
(3) 数据结构具有相对的稳定性。
(4) 遵循数据库设计三范式。
基于以上设计原则,本系统设计了如下数据库:
全部都使用逻辑删除,为了便于开发,所以不添加任何表关联。
【收藏记录】模块,表名:shoucangjilu | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
username | varchar(255) | 收藏用户 |
xwid | int | 对应模块id |
biao | varchar(255) | 收藏得模块 |
biaoti | varchar(255) | 显示的标题 |
url | varchar(512) | 收藏URL |
ziduan | varchar(255) | 对应模块字段 |
addtime | timestamp | 添加时间 |
【前端登录凭证】模块,表名:token | ||
字段名 | 字段类型 | 名称 |
token | char(32) | 唯一值 |
session | text | 保存得数据 |
cx | varchar(50) | 登录权限 |
login | varchar(50) | 登录模块 |
username | varchar(50) | 登录用户 |
valueid | varchar(50) | 用户id |
token_time | timestamp | 当前时间 |
, 字段:token , 设置主键为token |
【管理员】模块,表名:admins | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
username | varchar(50) | 帐号 |
pwd | varchar(50) | 密码 |
addtime | timestamp | 添加时间 |
【用户】模块,表名:yonghu | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
yonghuming | varchar(50) | 用户名 |
mima | varchar(50) | 密码 |
xingming | varchar(50) | 姓名 |
xingbie | varchar(255) | 性别 |
shouji | varchar(50) | 手机 |
youxiang | varchar(50) | 邮箱 |
shenfenzheng | varchar(50) | 身份证 |
touxiang | varchar(255) | 头像 |
addtime | timestamp | 添加时间 |
【新闻分类】模块,表名:xinwenfenlei | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
fenleimingcheng | varchar(50) | 分类名称 |
addtime | timestamp | 添加时间 |
【新闻信息】模块,表名:xinwenxinxi | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
biaoti | varchar(255) | 标题 |
fenlei | int | 分类 |
tupian | varchar(255) | 图片 |
tianjiaren | varchar(50) | 添加人 |
dianjilv | int | 点击率 |
neirong | longtext | 内容 |
addtime | timestamp | 添加时间 |
设置索引, 字段:fenlei , 关联表【xinwenfenlei】中的id 字段 |
【友情链接】模块,表名:youqinglianjie | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
wangzhanmingcheng | varchar(50) | 网站名称 |
wangzhi | varchar(50) | 网址 |
addtime | timestamp | 添加时间 |
【留言板】模块,表名:liuyanban | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
xingming | varchar(50) | 姓名 |
lianxidianhua | varchar(50) | 联系电话 |
liuyanneirong | text | 留言内容 |
liuyanren | varchar(50) | 留言人 |
huifuneirong | text | 回复内容 |
addtime | timestamp | 添加时间 |
【轮播图】模块,表名:lunbotu | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
title | varchar(50) | 标题 |
image | varchar(255) | 图片 |
url | varchar(255) | 连接地址 |
addtime | timestamp | 添加时间 |
【景点信息】模块,表名:jingdianxinxi | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
jingdianbianhao | varchar(50) | 景点编号 |
jingdianmingcheng | varchar(255) | 景点名称 |
suoshudiqu | int | 所属地区 |
tupian | text | 图片 |
kaifangshijian | varchar(255) | 开放时间 |
fujinmeishi | text | 附近美食 |
dizhi | varchar(255) | 地址 |
piaojia | decimal(18, 2) | 票价 |
liulanliang | int | 浏览量 |
miaoshu | longtext | 描述 |
addtime | timestamp | 添加时间 |
设置索引, 字段:suoshudiqu , 关联表【diqu】中的id 字段 |
【地区】模块,表名:diqu | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
diqumingcheng | varchar(255) | 地区名称 |
addtime | timestamp | 添加时间 |
【旅游线路】模块,表名:lvyouxianlu | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
xianlubianhao | varchar(50) | 线路编号 |
xianlumingcheng | varchar(255) | 线路名称 |
tupian | text | 图片 |
chufadi | varchar(255) | 出发地 |
tujingdi | varchar(255) | 途经地 |
zhongdian | varchar(255) | 终点 |
jiage | decimal(18, 2) | 价格 |
liulanliang | int | 浏览量 |
xianlutese | longtext | 线路特色 |
xianlujianjie | longtext | 线路简介 |
addtime | timestamp | 添加时间 |
【预定】模块,表名:yuding | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
lvyouxianluid | int | 旅游线路id |
xianlubianhao | varchar(50) | 线路编号 |
xianlumingcheng | varchar(255) | 线路名称 |
chufadi | varchar(255) | 出发地 |
tujingdi | varchar(255) | 途经地 |
zhongdian | varchar(255) | 终点 |
jiage | decimal(18, 2) | 价格 |
dingdanhao | varchar(50) | 订单号 |
yudingshijian | varchar(25) | 预订时间 |
yudingrenxingming | varchar(50) | 预订人姓名 |
lianxifangshi | varchar(50) | 联系方式 |
zhuangtai | varchar(50) | 状态 |
beizhu | text | 备注 |
yudingren | varchar(50) | 预订人 |
addtime | timestamp | 添加时间 |
iszf | varchar(10) | 是否支付 |
设置索引, 字段:lvyouxianluid , 关联表【lvyouxianlu】中字段id |
【地方美食】模块,表名:difangmeishi | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
meishibianhao | varchar(50) | 美食编号 |
mingcheng | varchar(255) | 名称 |
fujinjingdian | varchar(255) | 附近景点 |
fenlei | int | 分类 |
tupian | text | 图片 |
jiage | decimal(18, 2) | 价格 |
meishijianjie | text | 美食简介 |
addtime | timestamp | 添加时间 |
设置索引, 字段:fenlei , 关联表【meishifenlei】中的id 字段 |
【美食分类】模块,表名:meishifenlei | ||
字段名 | 字段类型 | 名称 |
id | int | (主键) |
fenleimingcheng | varchar(255) | 分类名称 |
addtime | timestamp | 添加时间 |
第四章 系统实现
4.1主要界面实现
本系统的UI设计主要采用ElementUI,使得界面更加大气美观。
4.1.1用户登录
输入正确的用户名、密码和所选角色后进行登录。
4.1.2 首页
登录成功后进入首页面
图4.1首页效果
4.1.3 景点信息管理
图4.2旅游信息信息管理
4.2主要功能程序的实现
4.2.1 数据库连接的建立
本系统在数据库连接方面,使用统一的连接数据库的方法,引入相关的jar包之后,调用其中的类。通过application.properties配置文件读取数据库信息和登录数据库帐户的用户名和密码,实现数据库的连接。具体的代码如下:
application.properties文件的内容如下:
# 关闭缓存,及时刷新,上线生产环境需要修改为true spring.datasource.username=root spring.datasource.password=root spring.datasource.url=jdbc:mysql://localhost:3306/lvyou?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true #以下为mysql8.0以上使用 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver #spring.datasource.url=jdbc:mysql://localhost:3306/spbootvue07987lyxxtjxtsjysx?useUnicode=true&characterEncoding=UTF-8&useSSL=FALSE&serverTimezone=UTC&useOldAliasMetadataBehavior=true spring.datasource.driver-class-name=com.mysql.jdbc.Driver #初始化连接 spring.datasource.initial-size=10 #最大空闲连接 spring.datasource.max-idle=20 #最小空闲连接 spring.datasource.min-idle=5 #最大连接数量 spring.datasource.max-active=50 #是否在自动回收超时连接的时候打印连接的超时错误 spring.datasource.log-abandoned=true #是否自动回收超时连接 spring.datasource.remove-abandoned=true #超时时间(以秒数为单位) spring.datasource.remove-abandoned-timeout=180 ##<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 --> spring.datasource.max-wait=1000 spring.datasource.test-while-idle=true #检测数据库的查询语句 spring.datasource.validation-query=select 1 spring.datasource.test-on-borrow=true #每隔五分钟检测空闲超过10分钟的连接 spring.datasource.min-evictable-idle-time-millis=600000 spring.datasource.time-between-eviction-runs-millis=300000 spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp spring.mvc.pathmatch.use-suffix-pattern=false spring.mvc.pathmatch.use-registered-suffix-pattern=true spring.mvc.contentnegotiation.favor-path-extension=false server.port=8088 server.servlet.context-path=/ # 整合mybatis mybatis.type-aliases-package=com.spring.boot.entity mybatis.mapper-locations=classpath:mapper/*.xml mapper.mappers=com.base.MapperBase mapper.not-empty=false mapper.identity=MYSQL #分页插件 pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql # 设置文件上传无限制 spring.servlet.multipart.maxFileSize=-1 spring.servlet.multipart.maxRequestSize=-1 |
4.2.2用户登录
当用点击登录按钮,跳转到登录页面,输入账号,密码验证码并且选择角色点击登录系统后,后台判断账号,密码验证码、角色是否正确,如果正确跳转到前台首页。具体处理过程如下:
第五章 系统的测试
5.1 软件测试的目的和原则
在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里更具有它的重要性。
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤地继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组
(1) 单元测试 单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和结构性测试两种。
(2) 集成测试 在这个测试步骤中所发现的往往是概要设计的错误。
(3) 系统测试 在这个测试步骤中所发现的往往是需求规格说明的错误。一般来说,系统测试是功能性测试,不是结构性测试。
第六章 总结
通过一个多月的系统开发,在线学习系统完成。在系统的开发过程中,以前学习感到很抽象的课程,如软件工程、数据库原理、面向对象程序设等变得清晰起来。感觉到这几门理论课程的重要性。
以前做一些应用的系统开发,随意性大,想到那里做到那里,没有统一的规划,一旦系统成型,出现错误返工修改工作量大,最终的系统可靠性不高。另外一直以来,进行程序设计均采用结构化开发方法,对系统的全貌难以在开发前看到,导致实现的系统不满足需求。
这次的毕业设计开发,主要有以下几点收获:
2.通过实践,提高了系统分析的能力,对数据流图、数据字典、系统流程图等系统设计工具的使用有了更深刻的认识。为以后的工作、学习的进一步提高打下了坚实的基础。
参考文献
[1] [美]Todd Cook. JSP从入门到精通[M].北京:电子工业出版社,2003. 1-385.
[2] Soren Lauesen.Software Requirements Styles and Techniques[M]. BeiJing: Publishing House of Electronics Industry,2002.10,25-90.
[3] Roger S.Pressman.Software Engineering A Practitioner’s Approach, 5th ed[M].北京:清华大学出版社,2001.1-589.
[4] Hans Bergsten. JavaServer Pages_2nd Edition[M]. O'Reilly, August 2002,1-500.
[5] Kevin Duffey,Vikram Goyal. Professional JSP Site Design[M]. BeiJing: Publishing House of Electronics Industry,2002.1-75.
[6] Paul C.Jorgensen.Software Testing A Craftsman’s Approach(second Edition)[M].China Machine Press,2003,170-175.
感谢学校以认真负责的态度为我们组织这次毕业设计以及毕业论文答辨。你们的严格把关,对我们来说有很大的压力。在这种压力下促使我们以最快的速度融入到软件开发理论的应用中去,通过这次煅炼,使我们的系统开发水平各方面都有了较大的进步。由此积累的经验将对我们以后的学习和生活产生帮助。
感谢我的指导老师,在毕业设计时帮助选题,在设计的过程中提出了许多有益的建议和意见,同时他先进的软件开发理念和思维方式也给我很大的启发。
点赞+收藏+关注,私信领取本源代码、数据库