Qt6 连接 MySql数据库

原文:
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文件

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

相关推荐

  1. Qt6 连接 MySql数据库

    2024-04-25 20:42:03       34 阅读
  2. Qt 无法连接MySQL数据库

    2024-04-25 20:42:03       41 阅读
  3. 解决Qt连接不上mysql数据库

    2024-04-25 20:42:03       60 阅读
  4. VS2022Qt6通过ODBC连接MySQL

    2024-04-25 20:42:03       32 阅读
  5. Qt 连接 Mysql

    2024-04-25 20:42:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 20:42:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 20:42:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 20:42:03       82 阅读
  4. Python语言-面向对象

    2024-04-25 20:42:03       91 阅读

热门阅读

  1. 每日一题:Spring 框架中都用到了哪些设计模式❓

    2024-04-25 20:42:03       31 阅读
  2. 归一化平面和像素坐标系

    2024-04-25 20:42:03       36 阅读
  3. 关于git的使用

    2024-04-25 20:42:03       29 阅读
  4. IOC和AOP

    IOC和AOP

    2024-04-25 20:42:03      34 阅读
  5. Python自动化系列5

    2024-04-25 20:42:03       39 阅读
  6. 洛谷P1234题解

    2024-04-25 20:42:03       36 阅读
  7. ts-contention ss-contention等待事件

    2024-04-25 20:42:03       38 阅读
  8. Golang使用自定义IP请求https

    2024-04-25 20:42:03       32 阅读