1. 程式人生 > >在QT中使用MySQL資料庫

在QT中使用MySQL資料庫

前篇已經寫了如何使用QT連結sqlite和SQLServer,見點選開啟連結

本次主要說明如何通過QT連結MySQL資料庫;

首先確保資料庫中存在Mysql的驅動,詳見QT安裝目錄中的plugins/sqldrivers資料夾下是否存在qsqlmysql.dll檔案。


首先在xxx.pro工程檔案中新增

  1. QT       += sql  

具體程式碼如下:

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
  2.  //   db.setDatabaseName("my.db");
  3.     db.setHostName("128.110.110.110");  
  4.     db.setPort(3306);  
  5.     db.setDatabaseName("database");  
  6.     db.setUserName("root");  
  7.     db.setPassword("hello123");  
  8.     if (!db.open()) {  
  9.         QMessageBox::critical(0, "Cannot open database1",  
  10.                               "Unable to establish a database connection.", QMessageBox::Cancel);  
  11.         returnfalse;  
  12.     }  
如果可以正常開啟和讀取資料庫,則說明連結成功。

注意:有時候存在即使有Mysql的驅動,仍然報錯

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

此時說明QT中自帶的Mysql的驅動不依賴,需要自己重新編譯。方法如下:當然可以參考這裡點選開啟連結

檔案是mysql-connector-c-6.1.10-win32(當然選擇適合自己作業系統的壓縮包)

之後解壓,在路徑中不要存在中文和空格,然後進入QT的安裝原始碼目錄中找到mysql的原始碼,進行編譯,

具體位於\Src\qtbase\src\plugins\sqldrivers\mysql該處,之後開啟QT的命令列,如圖:


然後執行:

  1. cd C:\qt-everywhere-opensource-src-5.4.0\qtbase\src\plugins\sqldrivers\mysql\  
  1. qmake "INCLUDEPATH+=C:\MySQL\MySQLServer5.5\include""LIBS+=C:\MySQL\MySQLServer5.5\lib\libmysql.lib" -o Makefile mysql.pro  
  1. mingw32-make  
如果沒有錯誤,則編譯成功,可以在\Src\qtbase\plugins\sqldrivers該資料夾下發現已經生成動態連結庫,將其拷貝之\mingw491_32\plugins\sqldrivers中替代之前QT自帶的Mysql驅動。

然後將Mysql的動態連結庫

  1. C:\MySQL\MySQLServer5.5\lib\libmysql.lib  
拷貝至系統中或者\mingw491_32\bin中即可。

大功告成。開始QT的Mysql之旅吧。

致謝