[Qt教程] 第22篇 數據庫(二)編譯MySQL數據庫驅動
樓主
發表於 2013-5-13 21:28:02 | 查看:
1616| 回複: 12

編譯MyQSL數據庫驅動
版權聲明
該文章原創於作者yafeilinux,轉載請注明出處!
導語
在上一節的末尾我們已經看到,現在可用的數據庫驅動隻有兩類3種,那麼怎樣使用其他的數據庫呢?在Qt中,我們需要自己編譯其他數據庫驅動的源碼,然後當做插件來使用。下麵就以現在比較流行的MySQL數據庫為例,說明一下怎樣在QtCreator中編譯數據庫驅動。
環境:Windows Xp + Qt 4.8.4+Qt Creator2.6.2
目錄
一、查看怎樣編譯數據庫驅動
二、下載MySQL
三、安裝MySQL
四、在MySQL中創建數據庫
五、編譯MySQL驅動
六、測試MySQL程序
正文
一、查看怎樣編譯數據庫驅動
1.在Qt Creator的幫助模式索引SQL Database Drivers關鍵字,這篇文檔裏詳細介紹了Qt數據庫的相關內容。
2.我們在文檔中定位到How to Build the QMYSQL Plugin on Windows一段,這裏講解了怎樣在Windows下編譯MySQL驅動。如下圖所示。
![]()
可以看到,主要分為兩步,首先下載並安裝MySQL,在安裝時要使用Custom Install定製安裝,安裝上庫Libs和頭文件Include
Files;然後是編譯,注意在編譯驅動前先添加上MySQL的庫和頭文件。
二、下載MySQL
![]() 2.然後進入該頁麵最下麵的MySQL Community Edition(GPL)鏈接,我們使用遵循GPL協議的開源版本。如下圖所示。
![]() 3.在新的頁麵我們選擇左上角Downloads按鈕下麵的Archives選項,從檔案中下載。如下圖所示。
![]() ![]() ![]() ![]() 三、安裝MySQL
1.運行下載的安裝包,如下圖所示。
![]() 2.點擊Next,進入下一步,這裏我們選擇同意條款。如下圖所示。
![]() 3.接著Next,下麵我們選擇定製安裝Custom。如下圖所示。
![]() 4.這裏需要安裝所有的頭文件和庫,點擊Development Components前麵的下拉箭頭,然後選擇第二項。如下圖所示。大家也可以看下右邊的說明。
![]() 5.然後選擇下麵的Browse…來更改安裝路徑,這裏設置為C:\MySQL\,如下圖所示。
![]() 6.填寫完路徑後點擊ok回到主頁麵,點擊Next來到新的頁麵,這裏選擇Install來進行安裝。如下圖所示。
![]() 7.等安裝完畢後,點擊Finish完成安裝。如下圖所示。
![]() 四、在MySQL中創建數據庫
1.下麵我們先在安裝的MySQL中創建一個數據庫,用於後麵的測試。首先到MyQSL的安裝目錄C:\MySQL\bin目錄下運行mysqld.exe程序,該程序運行完成後會自動關閉。如下圖所示。
![]() 2.在Windows開始中點擊“運行”,然後輸入cmd,進入終端後我們輸入下麵的命令:
cd C:\MySQL\bin
跳轉到安裝目錄下。如下圖所示。
![]() 3.然後輸入下麵的命令:
mysql –uroot –p
我們使用root用戶來登陸MySQL,因為默認密碼是空的,所以這裏不用設置密碼。運行這行代碼會提示Enterpassword,我們這時敲回車即可。如下圖所示。
![]() 4.登錄MySQL以後,我們使用下麵的命令來查看現有的數據庫:
show databases;
注意後麵有個分號。如下圖所示。
![]()
可以看到,這裏現在已經有幾個數據庫了,他們是MySQL需要的。如下圖所示。
![]() 5.我們不使用已經有的數據庫,而是新建自己的數據庫,下麵新建名為mydata的數據庫:
create database mydata;
如下圖所示。
![]() 6.我們再次查看已經存在的數據庫,發現顯示出了剛才創建的數據庫,如下圖所示。
![]() 7.完成後,可以輸入exit退出MySQL。
這裏隻是簡單介紹了一下在MySQL中創建數據庫的基本步驟,如果大家想學習更多的MySQL的使用,請參考其他資料。
五、編譯MySQL驅動
1.我們進入Qt安裝目錄的mysql源碼目錄中,具體路徑為(這裏Qt安裝在了C盤):
C:\Qt\4.8.4\src\plugins\sqldrivers\mysql
如下圖所示。
![]() 2.我們使用Qt Creator打開裏麵的mysql.pro項目文件。然後打開mysql.pro文件,在最下麵添加下麵兩行代碼:
INCLUDEPATH +=
C:/MySQL/include/
LIBS+= -LC:/MySQL/lib/ -llibmysql
這樣便包含了MySQL的庫和頭文件。如下圖所示。
![]() 3.現在我們使用左下角的錘子
![]() ![]()
裏麵的debug目錄裏有我們需要的qsqlmysqld4.dll和libqsqlmysqld4.a文件,不過它們隻用於開發Debug版本的MySQL程序。如下圖所示。
![]() 4.為了生成release庫,我們在Qt Creator中運行按鈕那裏設置為編譯Release版本。如下圖所示。
![]() 5.下麵再次按下錘子按鈕來編譯項目,就會生成“build-mysql-桌麵-Release”樣式的構建目錄,裏麵包含了發布release版本程序需要的dll文件qsqlmysql4.dll。
6.我們將生成的qsqlmysql4.dll,libqsqlmysql4.a,qsqlmysqld4.dll,libqsqlmysqld4.a都複製到C:\Qt\4.8.4\plugins\sqldrivers目錄下,這是數據庫驅動插件放置的目錄。如下圖所示。
![]() 六、測試MySQL程序
1.新建Qt控製台應用,名稱為sqldrivers。完成後在pro文件中更改如下:
QT += core sql
2.更改main.cpp文件內容如下。
這裏注意,創建表時varchar一定要指定長度。現在運行程序,會出現如下圖所示的結果:
![]()
這裏提示MySQL驅動沒有加載。
3.我們到C:\MySQL\lib中將libmysql.dll文件複製到C:\Qt\4.8.4\bin中,然後再次運行程序,發現已經成功了,如下圖所示。
![]() 結語
在Qt中編譯MySQL數據庫驅動的內容到這裏就介紹完了。從下一篇開始,我們將以SQLite數據庫為範例來講解Qt數據庫部分的應用。
涉及到的代碼: ![]() |
最後更新:2017-04-03 14:54:11