SpringBoot航空订票系统的设计与实现

发布于:2025-07-25 ⋅ 阅读:(28) ⋅ 点赞:(0)

前言

博主介绍: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);

源码获取

如需交流/获取资料,请先【关注+私信】我,私信获取源码~


网站公告

今日签到

点亮在社区的每一天
去签到