数据库课设 - 机票预订系统(保姆级手把手教你配置)

目录

程序演示👀

需求分析📖

将程序跑起来🏃‍♀️


 程序演示👀

✨技术栈springmvc + mybatis + thymeleaf + bootstrap✨

此课程设计使用了较为全面的前后端框架,mybatis数据库框架,thymeleaf前端模版引擎,bootstrap组件库。程序分为客户端和管理端,管理端可以管理客户信息以及订单航班,一定会在技术选型方面为你加分!!

对于想学习各种框架的同学,这个项目是很易于上手的。对于想直接运行程序,并且借鉴参考的同学,我在本篇文章会详细的说明如何完整的配置此项目。有任何问题欢迎评论区提出!

需求分析📖

✈️系统简介:

1.系统简介一套为方便旅客、代旅客预定机票的小型数据库应用系统。

2.系统功能系统分为两大模块:基本相互独立,进入方式不同

3.航司管理员模块:通过管理员的url进入,使用账号密码进行登录,进入以后可以对航班信息进行增删改查,可以重置、注销用户,可以对订单信息进行删除,可以注册新的管理员和修改自己的管理员信息

4.普通用户模块:默认进入这个模块,以绑定的手机号码进行登录,可以在此查询航班信息,选择航班进行下单预订、支付,支付后带没起飞的航班可以进行改签和退订,下单后有15分钟的支付时限,未支付订单过时间自动失效,并且可以修改自己的个人信息,进行修改。

✈️数据流图

✈️顶层图

✈️数据库ER图

✈️建库、建表代码

⚠️复制使用了建表代码记得要将order表的主键order_id设置为自增哦! 不然会报错

(1)	数据库建立
1.	CREATE DATABASE /*!32312 IF NOT EXISTS*/`airlines` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */;

(2)	Admin表建立
1.	DROP TABLE IF EXISTS `air_admin`;
2.	
3.	CREATE TABLE `air_admin` (
4.	  `admin_id` int NOT NULL AUTO_INCREMENT,
5.	  `admin_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
6.	  `password` varchar(255) NOT NULL,
7.	  PRIMARY KEY (`admin_id`)
8.	) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3;

(3)	User表建立
1.	DROP TABLE IF EXISTS `air_user`;
2.	
3.	CREATE TABLE `air_user` (
4.	  `user_id` int NOT NULL AUTO_INCREMENT,
5.	  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
6.	  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
7.	  `telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
8.	  `email` varchar(255) NOT NULL,
9.	  PRIMARY KEY (`user_id`)
10.	) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8mb3;


(4)	Airway表建立
1.	DROP TABLE IF EXISTS `air_airway`;
2.	
3.	CREATE TABLE `air_airway` (
4.	  `airway_id` int NOT NULL AUTO_INCREMENT,
5.	  `departure` varchar(255) NOT NULL,
6.	  `arrival` varchar(255) NOT NULL,
7.	  PRIMARY KEY (`airway_id`),
8.	  UNIQUE KEY `cities_uni` (`departure`,`arrival`)
9.	) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8mb3;

(5)	Aircraft表建立
1.	DROP TABLE IF EXISTS `air_aircraft`;
2.	
3.	CREATE TABLE `air_aircraft` (
4.	  `aircraft_id` int NOT NULL AUTO_INCREMENT,
5.	  `model` varchar(255) NOT NULL,
6.	  `seats` int NOT NULL,
7.	  PRIMARY KEY (`aircraft_id`),
8.	  UNIQUE KEY `aircraft_uni` (`model`)
9.	) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3;


(6)	Flight表建立
1.	DROP TABLE IF EXISTS `air_flight`;
2.	
3.	CREATE TABLE `air_flight` (
4.	  `flight_id` int NOT NULL AUTO_INCREMENT,
5.	  `flight_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
6.	  `airway_id` int NOT NULL,
7.	  `departure_time` datetime NOT NULL,
8.	  `arrival_time` datetime NOT NULL,
9.	  `aircraft_id` int NOT NULL,
10.	  `price` decimal(12,2) DEFAULT NULL,
11.	  `available_seat` int DEFAULT NULL,
12.	  PRIMARY KEY (`flight_id`),
13.	  UNIQUE KEY `flight_date` (`flight_num`,`departure_time`,`arrival_time`),
14.	  KEY `flight_airway` (`airway_id`),
15.	  KEY `flight_aircraft` (`aircraft_id`),
16.	  CONSTRAINT `flight_aircraft` FOREIGN KEY (`aircraft_id`) REFERENCES `air_aircraft` (`aircraft_id`),
17.	  CONSTRAINT `flight_airway` FOREIGN KEY (`airway_id`) REFERENCES `air_airway` (`airway_id`)
18.	) ENGINE=InnoDB AUTO_INCREMENT=1038 DEFAULT CHARSET=utf8mb3;

(7)	Order表建立
1.	DROP TABLE IF EXISTS `air_order`;
2.	
3.	CREATE TABLE `air_order` (
4.	  `order_id` bigint NOT NULL,
5.	  `user_id` int NOT NULL,
6.	  `flight_id` int NOT NULL,
7.	  `passenger_name` varchar(255) NOT NULL,
8.	  `passenger_id_card_num` varchar(255) NOT NULL,
9.	  `contact` varchar(255) NOT NULL,
10.	  `order_time` datetime NOT NULL,
11.	  `status` bit(1) NOT NULL,
12.	  PRIMARY KEY (`order_id`),
13.	  UNIQUE KEY `flight_passenger` (`flight_id`,`passenger_id_card_num`),
14.	  KEY `order_user` (`user_id`),
15.	  CONSTRAINT `order_flight` FOREIGN KEY (`flight_id`) REFERENCES `air_flight` (`flight_id`),
16.	  CONSTRAINT `order_user` FOREIGN KEY (`user_id`) REFERENCES `air_user` (`user_id`)
17.	) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

如何将程序跑起来🏃‍♀️

(1)下载项目的源代码,推荐使用IDEA打开项目

(2)本项目为前后端分离。因此我们需要一个服务器将项目跑起来。我选择的是当下较为流行的本地服务器Tomcat。参考文章:IDEA快速配置Tomcat(3分钟)_GarsonW的博客-CSDN博客

(当你已经完成第一步,并下载好了Tomcat,Tomcat服务器的配置可以从文章的第三步开始) 

(3)但是因为缺乏索引,打开html文件是没有图片的,如上图所示。我们用以下方法解决。服务器找不到本地的video、css、images等文件,需要通过上下文配置以访问本地文件。具体配置方法:Tomcat访问本地文件(一定成功)_GarsonW的博客-CSDN博客

(4)此时我们完成了服务器的配置,接下来我们需要对Mybatis数据库配置文件进行修改。配置文件的路径:src->resources->jdbc.properties        修改方式:将jdbc.username和jdbc.password修改为自己数据库的账号密码​​​​​​​

 

🎉项目配置完成!

 ⚠️需要源程序代码的同学评论区dd我,我一般都在线上! 

如果着急的话可以关注之后给我发私信,因为现在评论比较多了,看得比较慢! ​​​​​​​


🌲评论区问题解决

根据很多小伙伴配置后,提出较多的问题给出解决方案。

问题一:

解决:我们添加航线信息的时候需要添加航线表中存在的航线,如果添加不存在的则会提示本错误。此操作属于多表操作,并非只新增航班条目,还会对airway表进行查询。如果添加航线表里面没有的航线就会显示此错误。此页面是我们自己写的报错页面,并不是程序报错,是在程序报错之前检查错误并提示,也属于程序的亮点之一。

问题二:

解决:有小伙伴数据库版本比较旧,所以可能出现数据库驱动不匹配,导致程序报错。将下方的jdbc.driverClass=com.mysql.cj.jdbc.Driver 中的cj去掉改为 jdbc.driverClass=com.mysql.jdbc.Driver 即可。

  • 83
    点赞
  • 317
    收藏
    觉得还不错? 一键收藏
  • 267
    评论
摘 要 为了更好的巩固和加强书本所学的知识,把所学的东西转化为实际应用。我们学习了IBM DB2应用程序的使用。并应用了SQL语言。对数据库的创建、修改、删除方法有了一定的了解。通过导入表和删除表、更改表学会了对于表的一些操作。为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。 当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息。当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源。 通过机票预定系统的构造以及购票人的信息还有机票的相关信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与机票预定系统执行相同的操作。需求分析阶段就是要研究我所作的机票预定系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。最后就是要运行和实施数据库。要把查询结果与过程抓几张图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 267
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值