基于springboot的旅游管理系统源码数据库
随着旅游业的迅速发展,传统的旅游信息查询方式,已经无法满足用户需求,因此,结合计算机技术的优势和普及,针对常州旅游,特开发了本基于Bootstrap的常州地方旅游管理系统。
本论文首先对常州地方旅游管理系统进行需求分析,从系统开发环境、系统目标、设计流程、功能设计等几个方面进行系统的总体设计,开发出本基于Bootstrap的常州地方旅游管理系统,主要实现了用户功能模块和管理员功能模块两大部分,用户可查看景点信息、景点资讯等,注册登录后可进行景点订票操作,同时管理员可进入系统后台对系统进行全面管理操作。通过对系统的功能进行测试,测试结果证明该系统界面友好、功能完善,有着较高的使用价值,具有庞大的潜在用户群体和较广阔的应用前景。
本常州地方旅游管理系统基于Springboot+Bootstrap框架、JAVA编程语言、MYSQL数据库开发完成,“操作简单,功能实用”这是本软件设计的核心理念,本系统力求创造最好的用户体验。
第一章 绪论
1.1 研究现状
时代的发展,我们迎来了数字化信息时代,它正在渐渐的改变着人们的工作、学习以及娱乐方式。计算机网络,Internet扮演着越来越重要的角色,人们已经离不开网络了,大量的图片、文字、视频冲击着我们的视觉。
随着社会生产力的发展,人们的生活水平越来越高。旅游,越来越成为人们一种休闲娱乐的方式。喧嚣的都市,高强度的工作与生活,让很多人身心疲惫。而旅游,则可以调节身心、恢复疲惫和增加人们的阅历。在旅游度假区,既可以了解当地的人文情怀,又可以在碧水蓝天间忘却烦恼。所以,旅游越来越受人民的欢迎。根据联合国世界旅游组织最新发布的《世界旅游晴雨表》,2015年国际游客人数相比2014年增长了4.4%,达到11.84亿人次。随着社会和经济的发展,旅游业已成长为世界经济中发展势头最强劲和规模最大的产业之一。
因此,为了给用户提供一个便利的查看常州旅游信息、景点订票的平台,开发了本基于Bootstrap的常州地方旅游管理系统。
1.2 设计原则
在开始开发项目之前,必须要先考虑项目的实用性、科学性,以及该项目是否能够真正让用户受益并尽可能的发挥项目的作用。因此,在开发前,通过以下几条原则对项目进行判断:
(1)可行性原则。项目需要保证经济可行性和技术可行性,这包括了项目在浏览端、服务端等方面上的经济和技术上是可以达成的。
(2)适应性原则。项目要保证可维护性和可扩展性,这是每个非短期项目都需要考虑的,并且不论是维护还是扩展,都必须要建立在适应用户的正常需求的基础上。
(3)安全性及保密性原则。要充分保证用户信息的安全性和保密性,不能因为开发上的疏忽,导致用户的信息泄露。
(4)系统工程原则。为了确保项目的整体性,在项目调查、项目分析、项目设计、项目开发的过程中,都需遵从项目工程的方法和步骤逐步进行。
(5)统一规划、分期实施、逐步完善原则。项目开发的过程中,要按照规划、分期实施,特别是要注意在项目开发过程中要有条理,从点到面,一步步完善,不要贪图进度,要循环渐进的对项目进行开发。
1.3 研究内容
根据基于Bootstrap的常州地方旅游管理系统编写的论文主要阐述了基于Bootstrap的常州地方旅游管理系统的开发过程中使用的技术,首先进行系统需求分析,进而进行系统设计,最后才是系统功能实现以及测试几个部分,在开始编写论文之前亲自到图书馆借阅Java书籍,MYSQL数据库书籍等编程书籍,然后针对开发的基于Bootstrap的常州地方旅游管理系统,去网上查找了很多别人做好的系统,根据他们的功能设计进行自己的系统的系统功能结构设计,出具需求报告,最后才是进行程序编码,系统完成后才能进行测试和最后的验收工作,程序开发流程大致如此。
这次编写的论文包含了6个部分的内容,具体内容如下:
第一部分绪论:文章主要从课题背景以及设计原则综合阐述了开发此系统的必要性。
第二部分相关技术:系统开发用到的各种技术都大致做出了简介
第三部分系统分析:从可行性分析和功能需求分析等角度综合研究了此次开发的系统
第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示
第五部分系统实现:进行系统主要功能模块的界面展示
第二章 相关技术简介
2.1 JAVA技术
本次系统开发采用的是面向对象的Java作为软件编程语言,Java表面上很像C++,但是Java仅仅是继承了C++的某些优点,程序员很少使用的C++语言的特征在Java设计中去掉了。Java编程语言并没有什么结构,它把数组跟串都当成对象来处理,这样就免去了指针,并且Java编程语言还省去了预处理程序。Java编程语言能够极好的体现出面向对象的相关理论知识,程序开发者在进行程序开发中能够省去许多不必要的操作,节约大把时间,能够预留出更多的时间和精力来研究程序,通常Java在直接和间接引用对象上面能够实现自动处理的功能,它可以自动收集那些无用单元,极好地避免了关于存储管理的问题。当一个Java源文件在编译和运行时,这就需要写字板、附件里面的记事本等编辑文字软件,或者利用专门的程序开发平台(MyEclipse)来定义各种类,通过调用类来进行系统资源的访问操作,把Java源文件编译成中间码(二进制)存放在class文件里面,最后利用Java虚拟机执行调用class文件来满足Java API的调用。随着软件开发技术的日趋成熟,Java语言能够让网络应用高效快速,更接近实际,目前它是IT产业应用得最多的技术。目前市场上的编程工具有很多,下面就简单介绍几款编程工具供大家简单了解。
编程工具一:Eclipse,它是源代码免费开放的可扩展性强的一款开发软件
编程工具二:NetBeans同样是源代码免费开放,它能够满足和适应多种Web应用和客户机。在Java集成开发环境上能够投入使用
编程工具三:IntelliJ IDEA能够自动提示和分析源代码
编程工具四:MyEclipse这款商业化软件在Java集成开发环境上使用得比较多
编程工具五:EditPlus能够直接运行Java程序,前提是编译器和解释器能够正常运行。
2.2 MYSQL数据库
本次开发的系统后台采用MySQL数据库来存放数据,MySQL实质是RDBMS(关系型数据库管理系统),源代码开放性比较高,数据库管理的语言采用SQL(结构化查询语言)进行数据管理,下面我们就简单介绍SQL语句的一些常用用法。通常我们要创建一个数据库时就会使用“CREATE DATABASE ”命令开头,使用某个数据库时就会以“use+数据库名称”命令,如果想要查看数据库里面数据表就会使用到“SHOW TABLES”命令,当然我们在操作数据表内容时也会使用到某些命令,比如删除就用“drop”,清空就用“delete from”,更新数据就用“update”,需要加入数据的话可以用“insert into ”等命令,这些就是SQL查询语句的惯用语法。这次采用mysql数据库还是源于它备受关注的实用性和可靠性,它里面的大部分功能一般的系统都还用不完,况且mysql小巧但它功能比较齐全,是一般系统软件的开发首选。MySQL开放的源代码通过360安全浏览器可以快速下载下来,程序员可以对这些免费的代码根据自身需求进行个性化定制操作。为了我们能够更好地使用MySQL,平时我们需要多加维护,有空的时候还是多多查看一些二进制日志、错误日志、常规查询日志等日志,它们能够帮助我们进行性能分析以及DBA检查,除了这个还需要注意每间隔一定时间就要更新缓冲区和缓存,这样能够降低碎片,利用OPTIMIZETABLE命令让数据表进行重新组织,还能节省许多空间避免空间浪费。
2.3 B/S结构
B/S架构不需要在任何客户端来进行程序的部署,使用这样的程序结构来使用开发好的系统是利用浏览器来使用的,就是把开发好的程序配置到一台远程服务器上,在任何可以访问这台服务器的客户端电脑上都可以对程序进行操作和使用,这样的方式给使用者带来了极大的便捷。这样的结构提高了程序的运行效率,打破了地域的限制,降低了程序的使用成本。
我们开发的是一套常州地方旅游管理系统,我们可以把常州地方旅游管理系统系统配置在远程的服务器上,在得到访问权限之后,只要能够上网就可以使用和访问该系统并进行相关的操作,这样的一种先进模式我们之后只需要对服务器上的程序进行维护即可保证程序的正常使用,大大的提高了工作效率,降低了维护的成本。
2.4 Spring Boot框架
Spring Boot 是由 Pivotal 团队开发的框架,其作用是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,简单理解就是springboot并不是什么新型的框架,而是整合了spring,springmvc等框架,默认了很多配置,从而减少了开发者的开发时间。Spring Boot 简化了基于 Spring 的应用开发,通过少量的代码就能创建一个独立的、产品级别的 Spring 应用。 Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置。
Spring Boot的特点
(1)创建独立的Spring应用程序
(2) 内嵌Tomcat应用服务器,容器会认出war包自动完成部署操作
(3) 简化了Maven软件项目管理工具的配置流程
(4) 实现自动配置Spring框架
(5)提供生产就绪型功能
第三章 系统分析
3.1可行性分析
对所有的系统来说,都有可能会受到时间和空间上的制约。所以,我们在设计每一个项目的时候,必须对该系统实行可行性分析,这样不但能够降低项目的危害,还能改降低人力、物力和财力的损耗。下面对技术、经济、操作和法律四个方面进行介绍。
3.1.1技术可行性
技术可行性是指学习的技术是否能够完成本项目,如果团队本身没有相关的技术储备,而又能够迅速掌握此类技术,那项目应该达不到我们的设计要求。本文将开发的系统,将采用的关键技术包括JAVA编程语言、Bootstrap框架、MYSQL数据库存储技术等。大学时将这些技术已经学习掌握,因此,就技术层面而言,该项目的开发是有保障的。
3.1.2 操作可行性
操作可行性主要是针对系统用户而言,一个系统再完美,技术再先进,用户不去使用,或者用户根本不会使用,该系统存在的价值也是不大的。本系统拟采用的是B/S架构,用户只要通过点击浏览器即可轻松访问,而用户对浏览器操作非常熟练,所以从用户的角度而言,没有任何学习成本,因此,操作上是可行性的。
3.1.3 经济可行性
项目需要考虑花费问题,我们必须考虑系统开发中所有的花费进行计算,我们要考虑到系统需不需要太大的资金。二是系统开发后期维护相关的费用大不大。本系统采用我们开源的技术没进行设计,再设计中没有太多的花费,只需要一台电脑便可以进行开发,因此,该项目的实施在经济上完全可行。
3.1.4 法律可行性
本基于Bootstrap的常州地方旅游管理系统开发的所有技术资料都为合法,知识产权问题不会发生在开发过程中,而且没有抄袭其他相关系统,不会有侵犯版权的问题。另外,基于Bootstrap的常州地方旅游管理系统设计与开发所采用的操作和工作方式符合工作人员的日常习惯,而且操作方便灵活,便于管理。所以在开发过程中不会涉及法律责任,具有可行性;
综上所述,该基于Bootstrap的常州地方旅游管理系统在建设上不存在较大的障碍,各方面都能够保障系统的顺利开发。
3.2系统性能分析
系统除了功能结构设计以外还需要附加需求的分析,非功能需求分析,主要是包括界面、数据库问题、框架等,需要满足非功能性能的需求,保证系统运行起来的时候能够达到最佳的效果,保证稳定性和安全性。
(1)数据底层统一。数据传输中需要进行数据处理,在查询数据存储上达到最佳效果。
(2)界面风格统一。图片需要进行PS处理,文字需要统一格式大小。
(3)数据库。每个模块都需要独立,各个模块之间相互配合,形成一个整体,包装各个功能合理化的配置,需要考虑开放端口,满足可扩展性。
3.3系统功能分析
本基于Bootstrap的常州地方旅游管理系统主要包括用户功能模块和管理员功能模块两大部分,下面分别介绍其功能:
(1)管理员功能模块
管理员是这两类用户中权限最高的,管理员登录后可对系统进行全面管理,确保系统正常稳定运行,管理员主要功能包括个人中心、用户管理、景点信息管理、订票信息管理、用户评价管理以及系统管理。
(2)用户功能模块
用户进入系统可查看系统信息,包括网站首页、景点信息、景点资讯等,注册登录后主要功能模块包括订票、个人中心、订票信息管理以及用户评价管理。
3.4系统流程分析
3.4.1注册流程
未有账号的用户可进行注册操作。
图3.3注册流程图
3.4.2 登录流程
登录模块主要满足了管理员和用户的权限登录。
图3.4 登录流程图
3.5系统架构分析
基于Bootstrap的常州地方旅游管理系统的结构我们采用B/S架构来实现。采用B/S程序架构首要条件是我们要把常州地方旅游管理系统的数据库和程序放到远程服务器上,只需要在一个服务器上对程序和数据库进行配置,就可以在任何联通这台服务器的电脑上使用架设好的系统。这样的结构打破了时间和地域的限制,用户在使用常州地方旅游管理系统的时候变得非常方便。下图就非常明白的展现了基于Bootstrap的常州地方旅游管理系统的网络系统结构。
第四章 系统设计
4.1系统结构设计
对于本系统的开发设计,先自上向下,将一个完整的系统分解成许多个小系统来进行实现;再自下向上,将所有的“零件”组装成一个大的、完整的系统。因此这里面的许多个小功能块都要对将要实现的功能进行划分,同时还要给其他的小功能模块提供调用的接口,以便于最后将所有的功能块组合起来。
4.2系统顺序图设计
(1)登录顺序图
登录模块主要满足了管理员和用户的权限登录,。
(2)添加信息顺序图
管理员和用户登录后均可进行信息的添加操作。
4.3数据库设计
本基于Bootstrap的常州地方旅游管理系统采用的是MYSQL数据库,数据存储快,因为常州地方旅游管理系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确。
4.3.1 数据库实体(E-R图)
E-R图是一种描述显示数据类型间的关系的数据描述方法,E-R图可以完整地映射出现实模型的关系。E-R图中的三个最为重要的元素就是实体、属性、关系。E-R图即由这三点组成。
实体:E-R图中数据的实体,用矩形表示上面为实体名,下面为实体属性,实体包含主外键等关系。
属性:E-R图中的属性,是指实体的属性,实体由多条属性所构成,属性拥有自己的数据类型,数据大小。属性的优劣决定了E-R图中实体的健全性、完整性。
关系:E-R图中的关系是指实体之间的关系,用菱形来表示实体间的关系,这些菱形关系的联系上有着一对多或多对多的数据联系,这些构成了E-R图的关系,E-R图的关系紧密连接了实体,使实体间的关联性更加的显著、易懂。
4.3.2 数据库表设计
本基于Bootstrap的常州地方旅游管理系统需要后台数据库,采用MYSQL数据库系统进行数据的储存,下面介绍数据库中的各个表的详细信息。各个表的设计结果如下:
表4.1 users管理员信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
username` | varchar(100) | NULL | 用户名 |
password | varchar(100) | NULL | 密码 |
role | varchar(100) | NULL | 角色 |
addtime | timestamp | NULL | 新增时间 |
表4.2 jingdianxinxi景点信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
jingdianmingcheng | varchar(200) | NULL | 景点名称 |
jingdiantese | varchar(200) | NULL | 景点特色 |
fuwubaozhang | varchar(200) | NULL | 服务保障 |
gongyingshang | varchar(200) | NULL | 供应商 |
gerenpiaojia | int(11) | NULL | 个人票价 |
jingdianjieshao | longtext | NULL | 景点介绍 |
lvyouluxian | longtext | NULL | 旅游路线 |
yudingxuzhi | longtext | NULL | 预订须知 |
ruheyuding` | longtext | NULL | 如何预订 |
jingdiantupian | varchar(200) | NULL | 景点图片 |
thumbsupnum` | int(11) | NULL | 赞数 |
crazilynum` | int(11) | NULL | 踩数 |
表4.3 news景点资讯信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
title | varchar(200) | NULL | 标题 |
introduction | longtext | NULL | 简介 |
picture | varchar(200) | NULL | 图片 |
content | longtext | NULL | 内容 |
表4.4 yonghu用户信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
yonghuming | varchar(200) | NULL | 用户名 |
mima | varchar(200) | NULL | 密码 |
`xingming | varchar(200) | NULL | 姓名 |
`xingbie` | varchar(200) | NULL | 性别 |
shouji | varchar(200) | NULL | 手机 |
`youxiang | varchar(200) | NULL | 邮箱 |
touxiang | varchar(200) | NULL | 头像 |
表4.5 dingpiaoxinxi订票信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
dingdanbianhao | varchar(200) | NULL | 订单编号 |
jingdianmingcheng | varchar(200) | NULL | 景点名称 |
guanguangriqi | date | NULL | 观光日期 |
gerenpiaojia` | varchar(200) | NULL | 个人票价 |
goumaipiaoshu | varchar(200) | NULL | 购买票数 |
zongfeiyong | varchar(200) | NULL | 总费用 |
yonghuming | varchar(200) | NULL | 用户名 |
shengchengdingdanshijian | varchar(200) | NULL | 生产订单时间 |
sfsh | varchar(200) | NULL | 是否审核 |
shhf | longtext | NULL | 审核回复 |
ispay | varchar(200) | NULL | 是否支付 |