QT5.12連接MySQL的實(shí)現(xiàn)
為了方便和簡潔,我選擇的是最簡單的方法去完成(雖然因?yàn)橐欢褕?bào)錯(cuò)搞崩了心態(tài))
1.下載并安裝MySQL
選擇Downloads
下拉找到社區(qū)版
因?yàn)槭窃趙indow上運(yùn)行MySQL,便選擇windows安裝包
這個(gè)界面可以選擇版本,默認(rèn)就行,兩里面挑一個(gè)(網(wǎng)絡(luò)穩(wěn)定可以選第一個(gè))
這里選擇第二個(gè)下載
只是白嫖并且沒有社區(qū)要求的話,直接選這個(gè)就行
下好后會(huì)有一個(gè)msi文件,雙擊運(yùn)行,之后會(huì)在C:\Program Files (x86)\MySQL下安裝一個(gè)
MySQL Installer for Windows
(現(xiàn)在用不到,重裝和安裝別的版本的時(shí)候會(huì)用到)
選擇需要的版本(第一次運(yùn)行可能只有一個(gè)8.0),點(diǎn)擊右箭頭,選中版本
這里會(huì)有自定義安裝路徑和數(shù)據(jù)庫路徑的設(shè)置,這里修改文件夾名字里的空格為-(或者默認(rèn))
一路下一步到這里
(因?yàn)橐呀?jīng)裝了8.0,3306口占用了)
這里也是下一步
這里輸入root用戶的密碼,記得住就行
下一步,一直點(diǎn)點(diǎn)到結(jié)束
2.配置環(huán)境變量
復(fù)制mysql的安裝路徑,這里是C:\Program Files\MySQL\MySQL-Server-8.0
win+i打開設(shè)置>單擊系統(tǒng)>下拉點(diǎn)擊系統(tǒng)信息>在設(shè)備規(guī)格單擊高級(jí)系統(tǒng)設(shè)置
變量名無所謂,夠直觀就行(中文不行)
根據(jù)序號(hào)點(diǎn)擊,在第三步,新建的是你自己的變量名,且記住帶百分號(hào) %<變量名>%/bin(不打碼了,懶)
然后win+r,輸入cnm,鍵入MySQL,回車,不出意料,應(yīng)該是這樣的
這時(shí)鍵入命令
mysql -uroot -p
輸入安裝時(shí)設(shè)置的密碼,
3.QT部分
前提條件
安裝時(shí)選擇了source,驗(yàn)證安沒安裝,只要打開qt的安裝目錄,選擇版本號(hào)文件夾,看看有沒有src文件夾
這里或許會(huì)有別的什么文件夾,不影響,有src文件夾,就繼續(xù),沒有就下吧(建議直接重裝)
1.復(fù)制MySQL安裝目錄
2.打開mysql.pro 路徑一般在
..\Src\qtbase\src\plugins\sqldrivers\mysql
前面的兩個(gè)點(diǎn)是你的qt版本號(hào)目錄
雙擊.pro文件
修改如下(復(fù)制粘貼就行)
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) win32:LIBS += "C:\Program Files\MySQL\MySQL-Server-8.0\lib\libmysql.lib" INCLUDEPATH += "C:\Program Files\MySQL\MySQL-Server-8.0\include" DESTDIR = ../mysql/lib/
這里需要根據(jù)具體情況修改的是這里的兩個(gè)路徑
你需要把C:\Program Files\MySQL\MySQL-Server-8.0這一坨換成第一步復(fù)制的mysql路徑
修改完后選擇qsqldriverbase
修改 qsqldriverbase.pri
QT = core core-private sql-private # For QMAKE_USE in the parent projects. #include($$shadowed($$PWD)/qtsqldrivers-config.pri) include(./configure.pri) PLUGIN_TYPE = sqldrivers load(qt_plugin) DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
這里注釋了第4行,追加了第5行
這里準(zhǔn)備就緒后先別急
1.先檢查環(huán)境里是否包含qt安裝目錄下的bin文件夾(運(yùn)行編譯器必要的)
2.返回上一級(jí)目錄,檢查是否有build開頭的文件夾(有就刪了)
到這,單擊小錘子
如果沒有報(bào)錯(cuò),build的綠條會(huì)一路到底
右鍵pro文件,在資源管理器里打開
不出意外,會(huì)出現(xiàn)一個(gè)lib文件夾
打開它
復(fù)制dll文件
打開目錄 D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\plugins\sqldrivers,粘貼文件:
再到MySQL安裝目錄里C:\Program Files\MySQL\MySQL-Server-8.0\lib,復(fù)制 libmysql.dll和libmysql.lib 到 D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\bin
到這,差不多了(理論上)
重啟qt
測試
寫一下簡單的鏈接數(shù)據(jù)庫的代碼
#include "widget.h" #include "ui_widget.h" #include <QSqlDatabase> #include <QSqlError> #include <QDebug> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); QSqlDatabase db1 = QSqlDatabase(); db = db1.addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setPassword("root"); db.setUserName("root"); db.setDatabaseName("sys"); if(!db.open()){ qDebug() << db.lastError().text(); } else{ qDebug() << "OK"; return; } } Widget::~Widget() { delete ui; }
運(yùn)行測試
補(bǔ)充
如果有看部分qt教學(xué)課程,看到代碼是
QSqlDatabase db = QSqlDatabase(); db.addDatabase("QMYSQL");
這會(huì)報(bào)錯(cuò),“Driver not loaded Driver not loaded”
這段代碼的問題在于,首先創(chuàng)建了一個(gè) QSqlDatabase
對(duì)象的實(shí)例,但沒有給它傳遞任何參數(shù)。這意味著沒有指定要使用的數(shù)據(jù)庫驅(qū)動(dòng)。然后,使用 addDatabase()
方法添加一個(gè)數(shù)據(jù)庫驅(qū)動(dòng),但這并不會(huì)給 db
對(duì)象創(chuàng)建一個(gè)新的連接。相反,它會(huì)返回一個(gè)新的 QSqlDatabase
對(duì)象,而該對(duì)象才是我們真正需要的
還有另一種方法
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
一行解決,簡單明了
到這應(yīng)該就沒問題了
到此這篇關(guān)于QT5.12連接MySQL的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)QT5.12連接MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多
相關(guān)文章
C++實(shí)現(xiàn)職工工資管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡單的職工工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

Android App仿微信界面切換時(shí)Tab圖標(biāo)變色效果的制作方法

OpenCV實(shí)現(xiàn)圖像轉(zhuǎn)換為漫畫效果

OpenCV提取圖像中圓線上的數(shù)據(jù)具體流程