欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统

程序员文章站 2022-06-01 22:49:53
...

我做 xx管理系统的速度真是越来越快了。。信手拈来,几个小时搞定。。。(我该自豪吗 @ @)
我简直可以写个博客叫做 《那些年我做过的管理系统》了。。。

这次的项目使用了 JavaFx + Spring + MyBatis,单纯的使用框架练练手,其实没有必要。

使用框架的好处是 解耦合便于维护,对于一般的小型个人项目来说(尤其是这种实验,简直就是大材小用),使用框架其实是降低了开发效率。。。

代码还不完善,到时候和界面一起完善后上传 github 吧…

需求描述

设计并实现一个C/S结构的 “民航票务管理系统”。

该系统具有录入、修改、删除和查询各航班机票信息的功能。

需录入的信息如下:航班号、起点、终点、日期、起飞时刻、到达时刻、票价、折扣票数、剩余座位数、航班所属航空公司。

录入、修改、删除只能由管理员进行。


以下是实验要求的界面:
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统

界面预览

预览!!!这只是预览!!!完全仿照实验要求做的,后面有机会可以美化一下(真的丑啊)!
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统

SQL 语句

航班表:

CREATE TABLE `flight` (
  `f_id` char(8) NOT NULL,
  `f_src` varchar(15) DEFAULT NULL,
  `f_des` varchar(15) DEFAULT NULL,
  `f_date` date NOT NULL,
  `f_start_time` char(6) DEFAULT NULL,
  `f_end_time` char(6) DEFAULT NULL,
  `f_remain_seats` int(4) DEFAULT NULL,
  `f_fares` float(8,0) DEFAULT NULL,
  `f_discount_nums` float(8,0) DEFAULT NULL,
  `f_discount` float(8,0) DEFAULT NULL,
  `f_subordinate_company` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`f_id`,`f_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

用户表:

CREATE TABLE `user` (
  `u_id` varchar(8) NOT NULL,
  `u_username` varchar(50) DEFAULT NULL,
  `u_password` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

项目结构

【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统

记录一下

JavaFx 中 spring 工厂如何创建

JavaFx 利用 fxml 开发时控制器中无法获取 Spring 工厂帮你创建的对象(可能是我的姿势问题)。。

我的做法是利用一个 SpringHelper 类来辅助。。

public class SpringHelper {
    public static ApplicationContext ctx;
    public SpringHelper() {
        ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
    }
}

然后在整个类启动前创建好工厂:

public class Launcher {

    public static void main(String args[]){
        SpringHelper springHelper = new SpringHelper();
        Application.launch(MainStage.class, args);
    }
}

后面的控制类中就可以这样来使用工厂了。。。

private FlightService flightService = (FlightService) SpringHelper.ctx.getBean("flightService");

mysql 根据日期类型查询数据

其实可以转成字符串再操作。。。

select * from flight where 
DATE_FORMAT(f_date,'%Y-%m-%d') = '2012-12-12'
SELECT * FROM flight WHERE
f_date = '2012-12-12';

蛋疼

Delphi 中有个 DBNavigator 组件:
【数据库实验】《小型MIS的开发》— Spring + Mybatis + JavaFx 开发 民航票务管理系统

  • First按钮 将指针移到数据表的第一条记录。
  • Previous按钮 将指针前移一条记录o
  • Next按钮 将指针后移一条记录。
  • Last按钮 将指针移到数据表的最后一条记录。
  • Insert按钮 在当前记录前插入一条新记录,并将数据集组件置于插人状态。
  • Delete按钮 删除当前记录。
  • Edit按钮 将数据集置于编辑状态。
  • Post按钮 提交对当前记录的修改。
  • Cancel 按钮 取消对当前记录的修改。
  • Refresh按钮 清除数据浏览组件的显示缓冲区,并用与其相连的数据集组件中的记录刷新显示缓冲区。

这个有点牛逼嗷,JavaFx 没有自带,我也懒得自己写一个这种功能的组件,用几个按钮代替,实现增删改查的功能就行了。。