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

QT连接MySQL

      • 1、需要下载的东西:QT和MySQL
        • 1.1 安装QT
        • 1.2 安装MySQL
      • 2. 在QT中使用MySQL
        • 方法1:使用ODBC方式
        • 方法2:通过编译源码,在QT源码中加入MySQL动态库
      • 3.可能出错的地方:

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.可能出错的地方:

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

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/d448caa08a.html