环境说明:
- QT5.5.1;
- MySQL5.7.17-64bit;
连接步骤
- 安装QT(此处不赘述);
- 安装MySQL(直接使用从官网下载的mysql-installer-community.msi),安装到C盘根目录下,下面以此进行操作;
- 使用QT编译生成MySQL驱动dll;
- 加载驱动dll,使用QSqlDatabase/QSqlQuery等接口进行编程;
使用QtCreator编译MySQL驱动
- 将MySQLServer-ver/lib目录下的libmysql.dll以及Libmysql.lib文件拷贝到Qt的bin目录下(即qmake.exe所在的bin目录下,32位和64位作区分);
- 打开“Qt5.5.1\5.5\Src\qtbase\src\plugins\sqldrivers\mysql”目录,使用QtCreator打开mysql.pro文件;
- 增加如下两行配置代码:
INCLUDEPATH += C:\MySQL\MySQLServer5.7\include
LIBS += -LC:\MySQL\MySQLServer5.7\lib -llibmysql
- 上面要注意的是,MySQL的安装路径不允许有中文和空格;如果有中文和空格,有如下两种解决办法:
- 将MySQL的lib和include拷贝到一个独立的目录(未测试,网上有这种解决办法);
- 使用“$$quote”将路径包起来;
- 使用QtCreator构建mysql.pro;(注意区分32位和64位);
- 生成的qsqlmysql.dll的路径在C:/plugins/sqldrivers(估计是mysql.pro的缺省设置,没有深究);
- 然后就可以使用qsqlmysql.dll和qsqlmysql.lib进行QT连接MySQL的编程了;
- 要注意配置Qt的构建套餐(32/64),如下图:
使用qmake和nmake命令行编译MySQL驱动
- libmysql.dll拷贝到Qt的bin目录下;
- 使用Visual Studio自带的命令提示符控制台(配置了相关的环境变量,不能使用windows自带的cmd);
- 进入mysql.pro所在的目录;
- 执行如下命令:
qmake "INCLUDEPATH+=C:\MySQL\MySQLServer5.7\include" "LIBS+=C:\MySQL\MySQLServer5.7\lib\libmysql.lib" mysql.pro
nmake
- 生成的qsqlmysql.dll文件在Qt5.5.1\5.5\Src\qtbase\plugins\sqldrivers路径下;
使用Qt的接口API编程
- 拷贝生成的qsqlmysql.dll以及qsqlmysql.lib驱动文件到程序目录下,与exe所在路径同级,新建sqldrivers文件夹,放置dll以及lib文件;(这里重点强调一下路径:不是直接放到exe目录下,不是放到plugin/sqldrivers二级目录下,而是sqldrivers一级目录下);
- 拷贝libmysql.dll及libmysql.lib文件到exe同级目录下;
- 在QT项目的.pro中增加sql支持:
QT += sql
- 在main.cpp中写入如下测试代码,然后使用对应的构建套餐(32Bit/64Bit):
#include <QCoreApplication>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase oConn = QSqlDatabase::addDatabase("QMYSQL", "xxx");
oConn.setHostName("127.0.0.1");
oConn.setDatabaseName("xxx");
oConn.setUserName("root");
oConn.setPassword("123456");
oConn.setPort(3306);
if (!oConn.open())
{
qDebug() << "open failed!";
}
else
{
QSqlQuery oQuery(oConn);
oQuery.prepare("INSERT INTO test (name) VALUES (?)");
oQuery.addBindValue("TOM");
oQuery.exec();
oConn.commit();
}
return a.exec();
}
enjoy!
本文介绍了在QT5.5.1环境下连接MySQL5.7.17的详细步骤,包括安装QT和MySQL,使用QTCreator编译MySQL驱动,以及在QT项目中配置和使用接口API进行编程测试。

850

被折叠的 条评论
为什么被折叠?



