SpringBoot航空订票系统的设计与实现
文章目录
-
- 前言
- 详细视频演示
- 具体实现截图
-
- 后端框架SpringBoot
- 持久层框架Hibernate
- 成功系统案例:
- 代码参考
- 数据库
- 源码获取
前言
博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续输出高质量技术内容、深耕Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解。
💯文末获取源码+数据库💯
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人。
详细视频演示
视频演示
具体实现截图
后端框架SpringBoot
Spring Boot允许开发者快速构建出既可以独立运行又满足生产级别标准的Spring基础应用程序。此框架通过提供一系列便捷的工具和服务,极大地促进了基于Spring的应用开发工作的效率和质量。通过提供一系列大型项目中常用的默认配置,Spring Boot最大化减少配置文件的使用,开发者能够迅速启动和运行Spring应用程序。
Spring Boot通过约定优于配置的原则,避免了许多传统Spring应用开发时繁琐的配置,该框架支持对内嵌服务器的自动配置,如Tomcat、Jetty或Undertow,从而简化了Web应用的部署过程。
持久层框架Hibernate
Hibernate 是一个开源的、轻量级的 对象关系映射(ORM)框架,用于将 Java 对象映射到关系型数据库中的表,从而简化数据库操作。它是 Java 生态中最流行的 ORM 解决方案之一。
Hibernate的优势主要包括以下几点:
1、ORM(对象关系映射)通过注解或 XML 配置,将 Java 类(POJO)映射到数据库表,属性映射到列,支持继承、关联(一对一、一对多、多对多)等复杂关系。
2、JPA 规范实现 Hibernate 是 JPA(Java Persistence API)的默认实现之一,允许开发者使用标准 JPA 注解(如 @Entity, @Table, @Id)进行开发。
3、自动建表与更新 通过配置 hibernate.hbm2ddl.auto(如 update, create-drop),可自动生成或更新数据库表结构。
4、HQL(Hibernate Query Language)面向对象的查询语言,类似 SQL 但操作的是 Java 对象而非表。例如:
Query query = session.createQuery(\"FROM User WHERE age > :minAge\");query.setParameter(\"minAge\", 18);
5、缓存机制
一级缓存(Session 级):默认开启,减少重复查询。
二级缓存(SessionFactory 级):需配置(如 Ehcache、Redis),跨 Session 共享数据
6、延迟加载(Lazy Loading)支持关联对象的延迟加载(如 @OneToMany(fetch = FetchType.LAZY)),提升性能。
7、事务管理 支持 JDBC 事务和 JTA(Java Transaction API),可通过声明式事务(Spring 集成)管理。
所有项目均为博主亲自收集、开发并严格测试,确保源码完整、可运行,无缺失依赖或兼容性问题!同学们拿到后就能使用!博主具备多年高级开发经验,能深入讲解代码架构、核心逻辑及技术难点,助你高效掌握项目精髓。
成功系统案例:
代码参考
package cn.boot.action;import java.util.LinkedList;import java.util.List;import cn.boot.entity.City;import cn.boot.entity.main.SimpleUser;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import cn.boot.common.BaseAction;import cn.boot.entity.Flight;import cn.boot.entity.FlightSite;import cn.boot.service.BizService;import org.springframework.web.bind.annotation.ResponseBody;import util.Constant;import util.FieldUtil;import util.MessageUtil;import util.Page;@Controller@RequestMapping(\"/sys\")public class FlightSiteAction extends BaseAction { private String actionname = \"机票\"; private String actionclass = \"FlightSite\"; @Autowired private BizService service; @RequestMapping(value = \"/add2FlightSite.do\") public String add2(int uid) { putRequestValue(\"flight\", service.get(Flight.class, uid)); List queryByHQL = service.queryByHQL(\"from FlightSite where flight.id=? order by price\", uid); putRequestValue(\"slist\", queryByHQL); request.setAttribute(\"actionname\", actionname); request.setAttribute(\"actionclass\", actionclass); return \"addFlightSite\"; } @RequestMapping(value = \"/getFlightSite.do\") public String get(int uid) { try { FlightSite temp = service.get(FlightSite.class, uid); request.setAttribute(\"modifybean\", temp); request.setAttribute(\"actionname\", actionname); request.setAttribute(\"actionclass\", actionclass); return \"modifyFlightSite\"; } catch (Exception e) { e.printStackTrace(); MessageUtil.addMessage(request, \"获取信息失败.\"); return ERROR; } } @RequestMapping(value = \"/addFlightSite.do\") public String add(FlightSite bean) { try { service.add(bean); MessageUtil.addMessage(request, \"添加成功.\"); return SUCCESS; } catch (Exception e) { e.printStackTrace(); MessageUtil.addMessage(request, \"添加失败.\"); return ERROR; } } @RequestMapping(value = \"/updateFlightSite.do\") public String update(FlightSite bean) { try { service.update(bean); MessageUtil.addMessage(request, \"更新成功.\"); return SUCCESS; } catch (Exception e) { e.printStackTrace(); MessageUtil.addMessage(request, \"更新失败.\"); return ERROR; } } @RequestMapping(value = \"/deleteFlightSite.do\") public String delete(String ids) { try { service.delete(FlightSite.class, ids); MessageUtil.addRelMessage(request, \"操作成功.\", \"mainquery\"); return SUCCESS; } catch (Exception e) { e.printStackTrace(); MessageUtil.addMessage(request, \"操作失败.\"); return ERROR; } } @RequestMapping(value = \"/queryFlightSite.do\") public String query() { try { // 字段名称集合 LinkedList<String> parmnames = new LinkedList<String>(); // 字段值集合 LinkedList<Object> parmvalues = new LinkedList<Object>(); Page p = FieldUtil.createPage(request, FlightSite.class, parmnames, parmvalues); //if (parmnames.contains(\"type\")) { //actionname1 = (String) parmvalues.get(parmnames.indexOf(\"type\")); //} Page page = service.find(p, FlightSite.class); session.setAttribute(Constant.SESSION_PAGE, page); request.setAttribute(\"actionname\", actionname); request.setAttribute(\"actionclass\", actionclass); return \"listFlightSite\"; } catch (Exception e) { e.printStackTrace(); return ERROR; } }}
数据库
DROP TABLE IF EXISTS `t_admin`;CREATE TABLE `t_admin` ( `id` int(0) NOT NULL AUTO_INCREMENT, `photo` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `userID` int(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `FKri7quj2chn4dhn1q1lpi6xcan`(`userID`) USING BTREE, CONSTRAINT `FKri7quj2chn4dhn1q1lpi6xcan` FOREIGN KEY (`userID`) REFERENCES `t_userinfo` (`userID`) ON DELETE CASCADE ON UPDATE RESTRICT) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of t_admin-- ----------------------------INSERT INTO `t_admin` VALUES (1, \'1610673936360.jpg\', 1);-- ------------------------------ Table structure for t_airport-- ----------------------------DROP TABLE IF EXISTS `t_airport`;CREATE TABLE `t_airport` ( `id` int(0) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `cityId` int(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `FK8x31qty00wy44cxat4p44avnk`(`cityId`) USING BTREE, CONSTRAINT `FK8x31qty00wy44cxat4p44avnk` FOREIGN KEY (`cityId`) REFERENCES `t_city` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of t_airport-- ----------------------------INSERT INTO `t_airport` VALUES (1, \'凤凰机场\', 6);INSERT INTO `t_airport` VALUES (2, \'浦东机场\', 2);INSERT INTO `t_airport` VALUES (3, \'虹桥机场\', 2);INSERT INTO `t_airport` VALUES (4, \'地窝堡机场\', 5);INSERT INTO `t_airport` VALUES (5, \'首都机场\', 1);INSERT INTO `t_airport` VALUES (6, \'大兴机场\', 1);INSERT INTO `t_airport` VALUES (7, \'白云机场\', 3);INSERT INTO `t_airport` VALUES (8, \'江北机场\', 4);-- ------------------------------ Table structure for t_city-- ----------------------------DROP TABLE IF EXISTS `t_city`;CREATE TABLE `t_city` ( `id` int(0) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `UK_tbtlil0b6cuheenrp1rckauqp`(`name`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of t_city-- ----------------------------INSERT INTO `t_city` VALUES (6, \'三亚\');INSERT INTO `t_city` VALUES (2, \'上海\');INSERT INTO `t_city` VALUES (5, \'乌鲁木齐\');INSERT INTO `t_city` VALUES (1, \'北京\');INSERT INTO `t_city` VALUES (3, \'广州\');INSERT INTO `t_city` VALUES (4, \'重庆\');-- ------------------------------ Table structure for t_company-- ----------------------------DROP TABLE IF EXISTS `t_company`;CREATE TABLE `t_company` ( `id` int(0) NOT NULL AUTO_INCREMENT, `cldate` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `dizhi` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `ename` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `fanwei` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `fullname` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `imgFile` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `leixing` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `UK_larsywqneqn4jkbiow3rplpdf`(`name`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of t_company-- ----------------------------INSERT INTO `t_company` VALUES (1, \'1991-01-15\', \'广东省广州市白云机场\', \'China Southern Airlines Company Limited \', \'航空运输 航空 \', \'中国南方航空集团有限公司 \', \'1610668455519.jpeg\', \'国有企业\', \'南方航空\');INSERT INTO `t_company` VALUES (2, \'1990-01-15\', \'-\', \'China Northern Airlines \', \'-\', \'中国北方航空公司\', \'1610668520210.jpg\', \'-\', \'北方航空\');INSERT INTO `t_company` VALUES (3, \'1988-01-15\', \'上海市虹桥路2550号\', \'China Eastern Airlines Corporation Limited \', \'航空飞行 \', \'中国东方航空集团有限公司 \', \'1610668587059.jpg\', \'中央企业 \', \'东方航空\');INSERT INTO `t_company` VALUES (4, \'2006-12-15\', \'中国重庆市\', \'West Air Co. Ltd. \', \'国内航空客货运输\', \'西部航空有限责任公司 \', \'1610668655626.jpg\', \'民营航空公司\', \'西部航空\');-- ------------------------------ Table structure for t_flight-- ----------------------------DROP TABLE IF EXISTS `t_flight`;CREATE TABLE `t_flight` ( `id` int(0) NOT NULL AUTO_INCREMENT, `endTime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `shijian` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `sid` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `startTime` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `statussel` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `companyId` int(0) NULL DEFAULT NULL, `endAirportId` int(0) NULL DEFAULT NULL, `startAirportId` int(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `UK_94s0ctwph0d4a9g50w2rh0op2`(`sid`) USING BTREE, INDEX `FKj3rxeukfswd404g5mbt5hswaf`(`companyId`) USING BTREE, INDEX `FKagn4dvgndvwdcpxn5mnct54hn`(`endAirportId`) USING BTREE, INDEX `FKhdryaesr75svdgh0h4qbj08xm`(`startAirportId`) USING BTREE, CONSTRAINT `FKagn4dvgndvwdcpxn5mnct54hn` FOREIGN KEY (`endAirportId`) REFERENCES `t_airport` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT, CONSTRAINT `FKhdryaesr75svdgh0h4qbj08xm` FOREIGN KEY (`startAirportId`) REFERENCES `t_airport` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT, CONSTRAINT `FKj3rxeukfswd404g5mbt5hswaf` FOREIGN KEY (`companyId`) REFERENCES `t_company` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of t_flight-- ----------------------------INSERT INTO `t_flight` VALUES (1, \'22:34\', \'2时19分\', \'MU5130\', \'23:15\', \'启用\', 3, 2, 5);INSERT INTO `t_flight` VALUES (2, \'22:57\', \'2时55分\', \'CZ8982\', \'23:02\', \'启用\', 1, 3, 5);INSERT INTO `t_flight` VALUES (3, \'18:35\', \'4时50分\', \'MU5696\', \'13:45\', \'启用\', 3, 6, 2);INSERT INTO `t_flight` VALUES (4, \'18:35\', \'3时5分\', \'MU6685\', \'15:30\', \'启用\', 3, 8, 6);INSERT INTO `t_flight` VALUES (5, \'19:01\', \'3时1分\', \'JU3453\', \'16:00\', \'启用\', 3, 8, 2);-- ------------------------------ Table structure for t_flight_site-- ----------------------------DROP TABLE IF EXISTS `t_flight_site`;CREATE TABLE `t_flight_site` ( `id` int(0) NOT NULL AUTO_INCREMENT, `discount` double NULL DEFAULT NULL, `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, `price` double NULL DEFAULT NULL, `sites` int(0) NULL DEFAULT NULL, `flightId` int(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, INDEX `FKioc3gtpc8qrc1mnj4i0u3o6d2`(`flightId`) USING BTREE, CONSTRAINT `FKioc3gtpc8qrc1mnj4i0u3o6d2` FOREIGN KEY (`flightId`) REFERENCES `t_flight` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Compact;-- ------------------------------ Records of t_flight_site-- ----------------------------INSERT INTO `t_flight_site` VALUES (1, 0.9, \'经济舱\', 300, 50, 4);INSERT INTO `t_flight_site` VALUES (2, 0.9, \'贵宾舱\', 2000, 10, 4);INSERT INTO `t_flight_site` VALUES (3, 0.8, \'经济舱\', 300, 300, 3);INSERT INTO `t_flight_site` VALUES (4, 0.5, \'经济舱\', 600, 300, 2);INSERT INTO `t_flight_site` VALUES (5, 0.5, \'经济舱\', 600, 350, 1);INSERT INTO `t_flight_site` VALUES (6, 0.6, \'普通舱\', 300, 99, 5);INSERT INTO `t_flight_site` VALUES (7, 0.6, \'经济舱\', 400, 100, 5);INSERT INTO `t_flight_site` VALUES (8, 0.6, \'贵宾舱\', 1000, 50, 5);
源码获取
如需交流/获取资料,请先【关注+私信】我,私信获取源码~