Qt实现简单旅行管理系统(连接MySQL数据库)

Qt连接MySQL数据库实现简单旅行管理系统

前言

Qt是采用C++语言进行编程,给新手带来简单的GUI界面实现方式,可以快速设计简单界面,虽然初始界面不是很好看,但是也是可以利用CSS来给单调的界面带来丰富多样的样式。
但是比起node.js连接数据库而言,QT连接数据库起初并不怎么复杂,在俺走了很多弯路后,简单总结了这篇博客。

连接MySQL

首先需要确保电脑上MySQL和Qt位数相同,因为我电脑起初mysql安装的是32版本,而Qt安装的64版本,就浪费了特别多的时间。在确保位数相同的前提下,第一次使用可能Qt上是没有MySQL的驱动的,并不支持连接MySQL数据库(但是一般支持一些其他数据库),这个地方有两种办法解决,一是在网上下载和你同版本的Qt的这个驱动,然后放在对应的文件夹下;而是在下载好的Qt文件夹中找到它提前放置的一个代码包,在简单修改后,编译即可生成对应MySQL需要的驱动。第二个方法较为可行,是我比较推荐的也是我采用的方法。对应这个教程网上很多,这里不赘述。

在上述完成之后,即可开始我们连接mysql的过程了:

	QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");      
//连接mysql数据库操作。
//创建一个数据库对象
//接下来是连接在本机上的数据库
        db.setHostName("127.0.0.1");
//一般默认主机名就是这个。
        db.setPort(3305);
//可能一般端口号是3306,但是我安装mysql时候选的是3305,根据个人情况选择
        db.setDatabaseName("travel");
//填写你要连接的数据库名称     填写这几行信息   
        db.setUserName("root");
        db.setPassword("1234");
        bool ok = db.open();
 //判断数据库是否连接成功,并且采用弹窗进行提示。
        if (ok){
            QMessageBox::information(this, "infor", "success");
        }
        else {
            QMessageBox::information(this, "infor", "open failed");
  }

在出现成功的弹窗之后就表明数据库连接上了。接下来介绍一些Qt中sql语句怎么使用:

  1. 基本sql语句(其中没有变量)如select cityname from city这条sql语句。
QSqlQuery query;
query.exec(QString("select cityname from city"));
  1. 带变量的sql语句,在语句中用%加数字表示语句中变量。
QSqlQuery query;
query.exec(QString("select * from customers where custname = '%1' AND
 custid = '%2'").arg(变量名1).arg(变量名2));

利用上面两条举例就可以应用到很多需要的sql语句了,那么执行后得到的结果如何在Qt中显示呢?
如果sql语句是有返回结果的,如select语句等等,他的结果都保存在query当中,因此可以利用query.size()先判断结果是否为空。
举例,图中为city表中数据

例如,我已经按照上面格式运行了select * from city;这条sql语句,那么结果都保存在query当中,这个时候我们需要访问query来得到数据。此时query指向的是结果的第一行:id cityname这一行,显然这不是我们需要的数据内容。输入query.next(),这个时候query指向的的就是 3 beijing这一行,query.value(0)的值便是3,query.value(1)的值便是beijing,其他同理,在这些基础上便可以完成数据库的基本操作了,例如:利用判断query的size来完成遍历所有元组内容等。

到此便完成了数据库这块的连接和学习了基本操作数据库的方法。

功能设计

在前面完成了对数据库连接操作后,我们便要回到这个系统软件的本身上来,他是一个系统,需要满足我们的需求,实现对应的功能,设计对应的数据库。
在这里插入图片描述
此系统为航班旅行预订系统,如图所示,该系统一共分为用户注册界面、查询航班界面、查询酒店公交信息界面、预订航班界面、预订酒店公交界面、查询客户订单界面和管理员插入信息界面共计7个板块。
上述就是整个系统的功能模块,总体而言功能这块实现不是很复杂,在完成数据库的设计后,功能设计也水到渠成,可以根据自己需要添加自己所需要的。

界面设计
界面设计这块因为QT自带的ui设计是非常方便的,丑可能丑了点,但是非常简约(。

在这里插入图片描述
因为这块就是傻瓜式缺啥加啥,最后在qt中写对应按钮的事件函数就可以,这块不再赘述。

上述就是大体介绍,有时间会再更新,有问题需要也可以私信。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值