Qt5.15 连接MySQL数据库的实现策略
生活随笔
收集整理的這篇文章主要介紹了
Qt5.15 连接MySQL数据库的实现策略
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- Qt5.15 連接MySQL數據庫
- 測試環境:
- 連接
- 測試
- 總結:
Qt5.15 連接MySQL數據庫
Qt5.15 的QSqlDatabase 類中并沒有支持MySQL數據庫的驅動,需要用戶自己添加。
這就需要重新編譯下mysql.pro
測試環境:
QT版本:QT 5.15.0
MySQL版本:mysql 5.5.55
連接
重新編譯mysql.pro。
1、打開Qt自帶的mysql.pro
文件地址在Qt的安裝目錄下: “C:\Qt\5.15.0\Src\qtbase\src\plugins\sqldrivers\mysql”
2、修改mysql.pro
// 注釋該語句#QMAKE_USE += mysql //添加include(C:\Qt\5.15.0\Src\qtbase\src\plugins\sqldrivers\configure.pri) //繼續添加LIBS += "D:\Program Files\MySQL\MySQL Server 5.5\lib\ libmysql.lib" INCLUDEPATH +="D:\Program Files\MySQL\MySQL Server 5.5\include" DEPENDPATH += D:\Program Files\MySQL\MySQL Server 5.5\includemysql.pro 修改后如下:
include(C:\Qt\5.15.0\Src\qtbase\src\plugins\sqldrivers\configure.pri) TARGET = qsqlmysqlHEADERS += $$PWD/qsql_mysql_p.h SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp#QMAKE_USE += mysql // 注釋該語句OTHER_FILES += mysql.jsonPLUGIN_CLASS_NAME = QMYSQLDriverPluginLIBS += "D:\Program Files\MySQL\MySQL Server 5.5\lib\ libmysql.lib" INCLUDEPATH +="D:\Program Files\MySQL\MySQL Server 5.5\include" DEPENDPATH += D:\Program Files\MySQL\MySQL Server 5.5\include include(../qsqldriverbase.pri)3、構建或者運行
這時會報錯,
忽略此問題。
在計算機C盤下會產生如下的幾個文件
然后,將libqsqlmysql.a 、qsqlmysql.dll 復制到 C:\Qt\5.15.0\mingw81_64\bin 下
測試
編寫測試用例
1、新建widget項目
2、 在.pro 文件中添加
QT += sql
3、 修改main.cpp
#include <QApplication> #include <QMessageBox> #include <QSqlError> #include <QTextCodec> #include <QDebug> #include <QSqlDatabase> #include <QSqlQuery> bool creatConnect();int main(int argc, char *argv[]) {QApplication a(argc, argv);//QTextCodec *codec = QTextCodec::codecForName("UTF-8");//QTextCodec::setCodecForLocale(codec);if(!creatConnect()){// return 1;}qDebug() << "Available drivers:";QStringList drivers = QSqlDatabase::drivers();foreach(QString driver, drivers)qDebug() << "\t "<< driver;qDebug() << "End";QSqlQuery query;QString sql = "select * from test1;";qDebug() << sql;query.exec(sql);while(query.next()){qDebug()<<query.value(0).toString()<<query.value(1).toString();}return a.exec(); }bool creatConnect() {QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("127.0.0.1");db.setPort(3307);db.setDatabaseName("test22");db.setUserName("root");db.setPassword("123456");bool ok = db.open();//建立數據庫連接if(!ok){QMessageBox::critical(0,QObject::tr("連接數據庫失敗!!!"),db.lastError().text());return false;}else{QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("連接數據庫成功!!!"));return true;} }注意:這里的數據庫連接的項目中與MySQL安裝過程中的配置要一致,如端口號,數據庫名稱、登錄賬號及密碼。
4、運行
測試成功,會彈出對話框:
可以看到,MySql的驅動也已經添加。
總結:
- 1、本人在調試過程中曾出現,MySQL驅動以添加,但是數據庫還是連不上的情況,最后還是重新卸載MySQL,然后重裝MySQL后
才連接成功。 - 2、網上也有介紹將MySQL安裝目錄lib 文件夾下的文件 libmysql.dll 復制到 Qt的bin
目錄下,本人親測未能有效。我也對照過MySQL5.5.55 的版本,是64位的。Qt 的編譯是MInGW_64,可以確定不是版本問題 - 3、本人也曾從MySQL官網上下載https://dev.mysql.com/downloads/connector/c/
下載mysql-connector-c,但是在其lib目錄中并沒有找到文件“libmysql.dll”。
總結
以上是生活随笔為你收集整理的Qt5.15 连接MySQL数据库的实现策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt数据库操作(三) -- 使用SQL模
- 下一篇: Qt 解决MySQL 中文乱码问题