Qt6 连接 MySql数据库

本文介绍了如何在Qt6.4.2环境中安装并使用MySQL驱动,包括下载驱动、调整CMakeLists.txt文件、检测驱动、连接数据库以及创建数据库的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:
Qt6 连接 MySql数据库

前言

教程参考:
Qt6.4.2连接Mysql

Qt6 是没有mysql驱动是要自己安装的,而且在 Qt6 是没有.pro文件,只能用cmake进行编译,特别的坑。
我也是被坑惨了,还去傻乎乎地找.por文件,整了半天。

必看

这个教程是针对Qt6的,如果用的是Qt5,则不适用!
在连接前要先安装Mysql,可以参考
Mysql超详细安装配置教程(保姆级)

正文

下载驱动

  • 找到对应Qt版本的驱动,下载解压
    https://github.com/thecodemonkey86/qt_mysql_driver/releases
  • libcrypto-1_1-x64.dlllibmysql.dlllibssl-1_1-x64.dll这3个文件复制到D:\Qt\6.4.2\mingw_64\bin文件夹中
  • 再将解压缩后中的sqldrivers的两个mysql驱动文件复制到D:\Qt\6.4.2\mingw_64\plugins\sqldrivers

调整代码

在CMakelists.txt 文件中

  • 找到find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
    替换为find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql)
  • target_link_libraries(filename PRIVATE Qt$ {QT_VERSION_MAJOR}::Widgets)后面添加一行
    target_link_libraries(filename PRIVATE Qt${QT_VERSION_MAJOR}::Sql)
    里面的 filename 就是文件名,要一致

连接 Mysql 数据库

检测 Mysql 驱动

//输出可用数据库
    qDebug()<<"available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug()<<driver;

如果输出中含有MySQL,那么恭喜你说明你的qt有MySQL驱动了,可以进行下一步。

连接

!!!注意是连接数据库,要保证已经创建过该数据库才能链接。
创建数据库的操作 在安装链接中也有(用的图形化界面),也可以参考这个:
MySQL创建数据库和创建数据表

在自己工程的cpp文件中加入

#include<QSqlDatabase>
#include<QDebug>
 
void MainWindow::on_pushButton_clicked()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");  //连接本地主机
    db.setPort(3306);
    db.setDatabaseName("db_name");  //Mysql 创建的数据库名称
    db.setUserName("root");
    db.setPassword("123456");    //安装 Mysql 设置的密码
    bool ok = db.open();
    if (ok){
         qDebug() << "link success";
    }
    else {
         qDebug() <<  "link failed";
    }
}

测试输出link success,连接成功。

直接创建数据库使用

    //创建数据库
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    //设置数据库名字
    db.setDatabaseName("login.db");
    //打开数据库
    if(db.open())
    {
        qDebug()<<"打开数据库成功"<<endl;
    }else
    {
        qDebug()<<"打开数据库失败"<<endl;
    }

成功后会在目录下生成.db文件

如果遇到问题可以在评论区讨论

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值