[Qt教程] 第21篇 數據庫(一)Qt數據庫應用簡介
樓主
發表於 2013-5-13 20:56:39 | 查看:
1403| 回複: 13

Qt數據庫應用簡介
版權聲明
該文章原創於作者yafeilinux,轉載請注明出處!
導語
下麵十節講解數據庫和XML的相關內容。在學習數據庫相關內容前,建議大家掌握一些基本的SQL知識,應該可以看懂基本的SELECT、INSERT、UPDATE和DELETE等語句,因為在這幾篇教程中使用的都是非常簡單的操作,所以即便沒有數據庫的專業知識也可以看懂!
環境:Windows Xp + Qt 4.8.4+Qt Creator2.6.2
目錄
一、數據庫簡介
二、數據庫驅動
三、簡單的數據庫應用
正文
一、數據庫簡介
Qt中的QtSql模塊提供了對數據庫的支持,該模塊中的眾多類基本上可以分為三層,如下圖所示。
![]() 其中驅動層為具體的數據庫和SQL接口層之間提供了底層的橋梁;SQL接口層提供了對數據庫的訪問,其中的QSqlDatabase類用來創建連接,QSqlQuery類可以使用SQL語句來實現與數據庫交互,其他幾個類對該層提供了支持;用戶接口層的幾個類實現了將數據庫中的數據鏈接到窗口部件上,這些類是使用前一章的模型/視圖框架實現的,它們是更高層次的抽象,即便不熟悉SQL也可以操作數據庫。如果要使用QtQql模塊中的這些類,需要在項目文件(.pro文件)中添加QT
+= sql這一行代碼。對應數據庫部分的內容,大家可以在幫助中查看SQL Programming關鍵字。
二、數據庫驅動
QtSql模塊使用數據庫驅動來和不同的數據庫接口進行通信。由於Qt的SQL模型的接口是獨立於數據庫的,所以所有數據庫特定的代碼都包含在了這些驅動中。Qt現在支持的數據庫驅動如下圖所示。
![]() 需要說明的是,由於GPL許可證的兼容性問題,並不是這裏列出的所有驅動插件都提供給了Qt的開源版本。下麵我們通過程序來查看一下現在版本的Qt中可用的數據庫插件。
1.新建Qt 控製台應用,名稱為sqldrivers。
2.完成後將sqldrivers.pro項目文件中第一行代碼更改為:
QT += core sql
表明使用了sql模塊,然後按下Ctrl + S快捷鍵保存該文件。
3.將main.cpp文件的內容更改如下:
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QStringList>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Available
drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << driver;
return a.exec();
}
這裏先使用drivers()函數獲取了現在可用的數據庫驅動,然後分別進行了輸出。運行程序,結果如下圖所示。
![]() 可以發現,現在隻支持三個數據庫。這裏要重點提一下SQLite數據庫,它是一款輕型的文件型數據庫,主要應用於嵌入式領域,支持跨平台,而且Qt對它提供了很好的默認支持,所以在本章後麵的內容中,我們將使用該數據庫作為例子來進行講解。
三、簡單的數據庫應用
下麵使用QSLite數據庫來進行一個簡單的演示,創建一個數據庫表,然後查找其中的數據並進行輸出。我們更改main.cpp文件的內容如下:
![]() 結語
本節簡單介紹了一下Qt中數據庫相關的內容,可以看到,現在Qt支持的數據庫僅有兩類。如何才能讓Qt支持其他的數據庫呢,下一節,我們將以現在廣為使用的MySql為例,講解數據庫驅動的編譯。如果大家想係統的學習Qt數據庫部分內容,可以參考《Qt
Creator快速入門》的第17章。
涉及到的源碼: ![]() |
最後更新:2017-04-03 14:54:11