Qt5中添加MySQL驱动

一、数据库驱动查询

//查看自己安装的QT中支持哪些数据库驱动
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMessageBox>
#include <QtSql/QSqlDatabase>
#include <QSqlError>

Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//打印Qt支持的数据库驱动
qDebug()<<QSqlDatabase::drivers();
//添加MySql数据库
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//连接数据库
db.setHostName("127.0.0.1");
//数据库服务器ip
db.setUserName("root");
db.setPassword("123456");
db.setDatabaseName("cable_test_system");
//数据库打开失败
if(!db.open())
{
QMessageBox::warning(this,"错误",db.lastError().text());
}
}

Widget::~Widget()
{
delete ui;
}

如果大家是QT4的版本,可能里面包含七种数据库的驱动

Qt5中添加MySQL驱动

但是如果是QT5的版本,发现只包含五种数据库的驱动,里面并不包含MYSQL数据库的驱动。Qt 5中取消了对MySQL数据库的默认支持,这是因为随着商业版的MySQL推出,MySQL已经不能算是一个完全开源的数据库了,而Qt默认只会给完全开源的数据库提供支持,而下面的数据库都是完全开源的。

Qt5中添加MySQL驱动

二、给QT5添加MYSQL驱动

1.打开MySQL安装目录下的lib目录,复制libmysql.dll和libmysql.lib文件

  • (每个人安装路径不同,根据你自己的安装路径,以下是我的安装路径)

Qt5中添加MySQL驱动

2.将刚才复制的两个文件,粘贴到Qt的MinGW编译器的bin文件夹下

  • (每个人安装路径不同,根据你自己的安装路径,以下是我的安装路径)

Qt5中添加MySQL驱动

3.找到Qt安装目录下的sql驱动中的mysql文件夹

Qt5中添加MySQL驱动

4.在Qt中打开mysql.pro,并修改下面3处代码添加include和limysql.lib的路径

  • (每个人安装路径不同,根据你自己的安装路径,以下是我文件的路径)

Qt5中添加MySQL驱动

TARGET = qsqlmysql

#添加MySQL的include路径
INCLUDEPATH += "C:Program FilesMySQLMySQL Server 5.7include"
#添加MySQL的libmysql.lib路径,为驱动的生成提供lib文件
LIBS += "C:Program FilesMySQLMySQL Server 5.7liblibmysql.lib"
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#注释掉这句话
#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

#生成dll驱动文件的目录地址
DESTDIR = D:QtQt5.12.125.12.12Srcqtbasesrcpluginssqldriversmysqllib

5.点击运行此工程,会在你的路径DESTDIR =  D:QtQt5.12.125.12.12Srcqtbasesrcpluginssqldriversmysqllib中生成四个文件,如下图所示,这四个文件就是qt所需的数据库驱动文件

Qt5中添加MySQL驱动

6.将这四个文件复制粘贴到Qt安装目录下的sqldrivers文件夹

  • (每个人安装路径不同,根据你自己的安装路径,以下是我文件的路径)

Qt5中添加MySQL驱动

7.重启Qt,再次查看自己安装的QT中支持哪些数据库驱动(如何查看回第一步),就可以看到如下支持MYSQL数据库了

Qt5中添加MySQL驱动

三、设置过程中遇到的问题

1.问题一

Qt5中添加MySQL驱动

出现这个问题是因为粗心,没有将第4步中的QMAKE_USE += mysql注释掉,

注释掉即可#QMAKE_USE += mysql

2.问题二

Qt5中添加MySQL驱动

说没有这个qtsqldrivers-config.pri

我们D:QtQt5.12.125.12.12Srcqtbasesrcpluginssqldrivers文件夹下有configure.pri文件,双击qsqldriverbase.pri打开该文件,将第四行注释掉,在下一行加入:include(./configure.pri)

Qt5中添加MySQL驱动

Qt5中添加MySQL驱动

3.问题三

这是四个文件生成,但是运行后又出现这个问题

Qt5中添加MySQL驱动

原因是我的MySQL版本是64位的,而我的选择的Qt编译器的版本是32位的,所以各位在添加驱动的开始就要确定自己的MySQL版本和Qt编译器的版本相对应,那些需要复制粘贴的文件都要相互对应。所以如果出现这个错误,就重新按步骤对应好复制粘贴。

发表评论

相关文章