最近在做畢業設計,有不少同學選擇使用qt和mysql做資料庫程式。然而,這兩種開發工具並不是非常完美的一結合就能使用的。通常qt會自帶mysql的驅動,但是,一般能直接使用的並不多。大多數部落格**都給出了mysql驅動的編譯過程。在這裡給出現成的、已經編譯好了的驅動。在可以win10、qt5.6和mysql5.5版本中適用。
連線資料庫所需要的檔案:
安裝完qt和mysql,配置好環境變數。使用下面的程式測試一下是否能連線
在conmysql.pro裡新增
1 qt += sqlconmysql.pro
1dbhelper#ifndef dbhelper_h
2#define dbhelper_h
34 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10
11class
dbhelper12;
3132
#endif
//dbhelper_h
1 #include "dbhelper.cppdbhelper.h"2
3dbhelper::dbhelper()413
14bool
dbhelper::open()
1525
return
true;26
}2728void
dbhelper::close()
2934}35
3637 dbhelper* dbhelper::_dbhelper =null;
3839 dbhelper *dbhelper::getdbhelper()
4045
return
_dbhelper;
46 }
在邏輯檔案裡新增
dbhelper* db =dbhelper::getdbhelper();如果提示 qmysql driver not loaded ,則需要用上述網盤裡的檔案去替換原始檔if( !db->open())
1.將sqldriver.rar解壓後 替換掉x:\qt\qt5.6.0\5.6\mingw49_32\plugins\sqldrivers裡原有的檔案
2.將mysql路徑下的libmysql.dll或者網盤裡libmysql.dll的放入c盤的windows路徑下,在除錯程式
如果沒有提示上述紅色字樣,說明驅動載入成功,根據mysql引數修改相應的連線引數
dbhelper類解釋:
(1)建構函式裡初始化連線字串,這裡可以使用xml儲存連線引數,初始化是讀取xml檔案,方便修改內容
(2)getdbhelper函式可以獲取到該類的例項。使用單例模式,該類在程式中只成功初始化一次,以後每次都可以通過該方法獲取到這乙個例項
(3)open與close 開啟與關閉函式
附上完整的邏輯**
1login.cppvoid
mainwindow::on_pushbutton_clicked()28
//邏輯**
9 qstring id = ui->lineedit->text();
10 qstring pass = ui->lineedit_2->text();
11int
n;12
qsqlquery query;
13 query.prepare("
select count(*) from logintable where id = ? and password = ?");
14 query.bindvalue(0
, id);
15 query.bindvalue(1
, pass);
16query.exec();
17while
(query.next())
1821
if( n == 1
)22 qdebug() << "
登陸成功!";
23else
24 qdebug() << "
登陸失敗!";
2526 db->close(); //
關閉資料庫
27 }
QT5 6 使用QWebEngineView的坑
最近有個專案用到了qt,並且需要展示乙個簡單的網頁,於是使用了 vs2013 qt5.6.3 qwebengineview 程式是64位的,在自己本機測試通過後準備發布,但在放到純淨環境下的win7上時卻在開啟網頁時就崩潰,不開啟的話一切正常。於是在本機測試32位的,發現本機也出問題了,開啟網頁就崩...
Mac端使用Qt5 14 2連線Mysql
最近學習qt,小白一枚,如有錯誤,請指出。在mac上使用qt連線資料庫mysql報錯,原因是qt中沒有和mysql的連線外掛程式。具體錯誤如下圖 第一部分 1,確定是否已經安裝好了mysql 安裝完成後終端輸入 ls usr local可以看見當前路徑下的檔案 圖中存在mysql說明安裝成功,或者檢...
Qt4連線mysql成功
之前一直在做嵌入式方面的開發,用的都是sqlite資料庫,由於專案要求,這次改為mysql資料庫,不過qt是不自帶mysql資料庫驅動的,需要自己手動編譯。我上網查詢編譯方法,可是別人的qt要麼是linux環境下的,要麼版本不一樣。不過還是在網上找到了乙個別人已經編譯好了的驅動,現跟大家分享下。qt...