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

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.***/downloads/installer/
使用过很多版本,没有碰到版本冲突问题,所以还是很简单的啦。

1.1 安装QT

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

1.2 安装MySQL

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

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

2. 在QT中使用MySQL

方法1:使用ODBC方式
  1. 在电脑搜索中搜索ODBC
  2. 点击添加
  3. 选择Unicode Driver
  4. 输入数据库名称和密码,点击测试如果显示Su***essful表示连接成功,这里的数据库名就是前面创建数据库时你自己定的名称。
  5. 在QT中验证,新建工程,输入以下代码,运行如果显示connect su***eed!表示连接成功。
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 su***essed!"<<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 su***essed!说明连接成功。
    与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 su***essed!"<<endl;
    }
}

3.可能出错的地方:

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

转载请说明出处内容投诉
CSS教程_站长资源网 » QT连接MYSQL(保姆级成功案例)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买