具体视频的教程
视频教程
我的文章是做一下补充的
流程:
第一点你要确保你的数据库的位数,如果你数据库位数的是32位,mingw编译的时候就需要选择的是32位**(在下面会提到)**
去到所在的文件
点击.pro文件进行编译驱动
mysql.pro
TARGET = qsqlmysql
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)
INCLUDEPATH+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/include)" #MySQL服务器的include目录
LIBS+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib/libmysql.lib)"
#MySQL服务器的libmysql.lib文件路径
DESTDIR = "../mysql/build" #自定义保存驱动的文件夹
#PLUGIN_CLASS_NAME = QMYSQLDriverPlugin # 把这个放到前面去了就可以了
#include(./qsqldriverbase.pri)
#在工程文件里用quote把路径包起来,就会忽略空格的
qsqldriverbase.pri
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./qsqldriverbase.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
$$quote()的语法是为了去掉路径中的空格
INCLUDEPATH+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/include)" #MySQL服务器的include目录
LIBS+="$$quote(C:/Program Files (x86)/MySQL/MySQL Server 5.5/lib/libmysql.lib)"
然后编译
虽然这里会报错,但是没有关系
这个是编译的目录结构
然后我把生成的编译成的文件输出到build里面去
需要拷贝一些文件到目录里
第一个需要做的 !!!
需要编译生成的把这个放到编译器里去
第二个 !!!
需要把MySQL的驱动文件放到编译器的bin目录里去
测试连接mysql的代码
#include <QtWidgets/QApplication>
#include <QtSql/QSqlDatabase> // 连接数据库
#include <QtSql/QSqlError> // 数据库连接失败打印报错语句
#include <QtSql/QSqlQuery> // 数据库操作(增删改查)
#include <qmessagebox.h>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("test");
db.setUserName("root"); //用户名
db.setPassword("123456"); //密码 如果为空可以删除变为空字符串
bool ok = db.open();
if (ok)
{
qDebug() << "连接成功" ;
}
else
{
qDebug() << "连接失败" ;
}
return a.exec();
}
原理总结:划重点!!!!!!
1、Qt中没有自带的mysql数据库插件 qsqlmysql.dll 与 qsqlmysql.dll,需要到自带的mysql.pro中自行编译。
2、需要把生成mysql动态库拷贝至Qt编译器的bin目录下
如果有疑问请在评论区留言