我用的是Qt5.12与MySQL8.0的版本 第一步 在Qt的安装目录下找到源码文件夹,找到MySQL的插件文件夹,例如: D:\qt\5.12.0\Src\qtbase\src\plugins\sqldrivers\mysql 找到mysql.pro这一个Qt项目文件,双击打开。
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)
具体更改为: 将第6行注释掉
#QMAKE_USE += mysql
添加
win32:LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql
INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
加$$quote是因为博主MySQL的安装路径中有空格,如果没有空格可以不加;第一个地址是你MySQL安装的位置中lib的位置,第二、三个是你MySQL中lib文件夹的上一级;
编译之后,会出现这个界面,表明你已经成功了,关闭窗口。 第二步 编译此项目,当项目编译完成之后,在Qt文件夹的同级目录下寻找plugins文件夹打开sqldrivers文件夹,例如:D:\plugins\sqldrivers; 将上面的文件复制到Qt的编译器的插件目录中,例如:D:\qt\5.12.0\mingw73_64\plugins\sqldrivers 第三步 将MySQL的动态库复制到Qt的bin目录下: 首先,我们在Mysql中找到lib文件夹: 例如:C:\Program Files\MySQL\MySQL Server 8.0\lib,找到libmysql.dll
将其复制到Qt的bin目录中:例如:D:\qt\5.12.0\mingw73_64\bin,注意编译器不要选错; 到这里配置就完成了,可以进行MySQL连接的测试。
第四步 调试MySQL是否能在Qt中连接: 只需要把连接的MySQL库改为本地的即可。 .pro修改代码
QT += core gui sql
.cpp文件部分代码,注意自家添加头文件
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("数据库名");
db.setUserName("用户名");
db.setPassword("密码");
bool ok = db.open();
if (ok){
QMessageBox::information(this, "infor", "success");
}
else {
QMessageBox::information(this, "infor", "open failed");
qDebug()<<"error open database because"<<db.lastError().text();
}
db.exec("SET NAMES 'UTF-8'");
qt通过ODBC操作数据库 1)查询数据 代码:
QSqlQuery result = db.exec("查询语句");
while(result.next()){
qDebug()<<"user_id:"<<result.value("属性0").toInt();
qDebug()<<"name:"<<result.value("属性1").toString()<<endl;
}
2)插入、更新、删除数据
result.clear();
bool result_successed = result.exec("插入/更新/删除语句");
if(result_successed){
qDebug()<<"插入成功!";
}else {
qDebug()<<"插入失败!";
}
|