QT连接MYSQL(保姆级成功案例)

1、需要下载的东西:QT和MySQL

首先下载QT和MYSQL,我的版本:QT 5.14.2 MYSQL 和 MYSQL 8.0.31;
⭐QT下载路径:https://download.qt.io/archive/qt/5.14/
(建议先下载一个迅雷,不然下载速度会很慢,或者在清华镜像里面找一下)
⭐MYSQL下载路径:https://dev.mysql.com/downloads/installer/
使用过很多版本,没有碰到版本冲突问题,所以还是很简单的啦。

1.1 安装QT

安装QT需要一个账户,没有的话直接注册就行。安装直接点击下一步即可,只需要注意组件的选择,注意必选的有:**QT 5.14.2中的 MinGW 和 Source,Developer中的 MinGW 和 Creator **。一开始我没有选择source导致后面重新安装了,其他模块可以不用安装,点击可以查看模块大小。
在这里插入图片描述

1.2 安装MySQL

安装MySQL就很简单了,全部点击下一步即可,只需要注意记住密码即可。
安装之后打开MySQL CommendLine,输入密码,然后创建数据库即可,注意记住数据库名称,比如我这里是用的test。(具体看图,密码就是安装时输入的密码)
在这里插入图片描述

  1. 添加环境变量
    ⭐ 注意一定要将QT和MySQL中的bin文件目录加入环境变量,这个很重要,否则QT可能无法访问到MySQL。
    直接在Windows搜索框搜索环境变量,按下图从左到右操作就行,安装路径改成你自己的,bin目录具体位置参考下下图。
    在这里插入图片描述

在这里插入图片描述

2. 在QT中使用MySQL

方法1:使用ODBC方式
  1. 在电脑搜索中搜索ODBC
    在这里插入图片描述
  2. 点击添加
    在这里插入图片描述
  3. 选择Unicode Driver
    在这里插入图片描述
  4. 输入数据库名称和密码,点击测试如果显示Successful表示连接成功,这里的数据库名就是前面创建数据库时你自己定的名称。
    在这里插入图片描述
  5. 在QT中验证,新建工程,输入以下代码,运行如果显示connect succeed!表示连接成功。
void MysqlClass::connectMysql(void)
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName("localhost");
    db.setDatabaseName("firstdat");
    db.setPort(3306);
    db.setUserName("root");
    db.setPassword("123456");
    db.open();
    if(!db.isOpen()){
        QMessageBox::critical(0, "error", "connect failed");
    }else{
        qDebug()<<"connect successed!"<<endl;
    }
}

在这里插入图片描述

方法2:通过编译源码,在QT源码中加入MySQL动态库
  1. 注意一定要将QT和MySQL中的bin文件加入环境变量。
    在这里插入图片描述
  2. 编译源码中的mysql工程
    D:\software\program\QT\QT_5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql路径,打开mysql.pro
    在这里插入图片描述
    ①双击打开pro文件
    ②注释掉 QMAKE_USE += mysql
    ③添加INCLUDEPATH 和 LIBS
    ④添加输出位置DESTDIR
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"
LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"
DESTDIR = ../mysql/myLib/

注意将我的路径改成自己的路径,路径前面的可能和我的不同,后面应该是一样的,可以参考我的。例如我修改后如下图:
在这里插入图片描述
修改好后,点击锤子构建工程,可能会有下图报错,不用管它
在这里插入图片描述
构建成功会在源码mysql路径下生成myLib文件夹。
在这里插入图片描述
将文件夹下的三个文件复制粘贴到目录:\QT_5.14.2\5.14.2\mingw73_64\plugins\sqldrivers
在这里插入图片描述
在这里插入图片描述
到这里这部分就完成了,剩下就很简单了。

  1. 复制MySQL安装目录下的动态库文件libmysql.dll到QT中
    C:\Program Files\MySQL\MySQL Server 8.0\lib中的libmysql到
    D:\software\program\QT\QT_5.14.2\5.14.2\mingw73_64\bin
    在这里插入图片描述
    在这里插入图片描述
    好啦,所有移植都完成了,下面我们验证一下:

  2. 验证,输入如下函数运行工程,窗口答应connect successed!说明连接成功。
    与ODBC连接不同的是,这里addDatabase函数内参数是:“QMYSQL”,而ODBC连接参数是“QODBC”。

void MysqlClass::connectMysql(void)
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("firstdat");
    db.setPort(3306);
    db.setUserName("root");
    db.setPassword("123456");
    db.open();
    if(!db.isOpen()){
        QMessageBox::critical(0, "error", "connect failed");
    }else{
        qDebug()<<"connect successed!"<<endl;
    }
}

在这里插入图片描述

3.可能出错的地方:

有时候经过上述步骤可能还是出错,有可能是你的电脑只有重启才能更新环境变量,**可以试着把电脑重启,会有惊喜发生。**不建议在其他地方下载软件,毕竟这两个都是免费下载的,官方的不容易出错。

  • 24
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要在Qt连接MySQL数据库,需要安装MySQL驱动程序。以下是连接MySQL数据库的步骤: 1. 安装MySQL驱动程序 在Qt连接MySQL数据库,需要安装Qt提供的MySQL驱动程序。可以使用Qt Maintenance Tool来安装MySQL驱动程序。打开Qt Maintenance Tool,选择“添加或删除组件”,找到“Qt版本->Qt->Qt 5.x->Qt 5.x MySQL”,然后选择安装。 2. 引入MySQL头文件 在Qt代码中,需要引入MySQL头文件,包括<QSqlDatabase>、<QSqlQuery>和<QSqlError>。可以使用以下代码引入这些头文件: ```c++ #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> ``` 3. 连接MySQL数据库 使用以下代码连接MySQL数据库: ```c++ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 设置主机名 db.setPort(3306); // 设置端口号 db.setDatabaseName("database_name"); // 设置数据库名 db.setUserName("username"); // 设置用户名 db.setPassword("password"); // 设置密码 if (!db.open()) { qDebug() << "Failed to connect to database:" << db.lastError().text(); } ``` 其中,QSqlDatabase::addDatabase()函数设置MySQL数据库驱动程序,其参数为“QMYSQL”。然后,设置主机名、端口号、数据库名、用户名和密码,并调用QSqlDatabase的open()函数连接MySQL数据库。如果连接失败,可以使用db.lastError().text()来获得错误信息。 4. 执行SQL查询 连接MySQL数据库后,可以使用以下代码执行SQL查询: ```c++ QSqlQuery query; if (!query.exec("SELECT * FROM table_name")) { qDebug() << "Failed to execute query:" << query.lastError().text(); } while (query.next()) { // 处理结果集 } ``` 其中,QSqlQuery对象用于执行SQL查询,其exec()函数执行查询,next()函数用于遍历结果集。 以上就是Qt连接MySQL数据库的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值