QT開發(四十七)——數據庫驅動層

QT開發(四十七)——數據庫驅動層

    驅動層爲具體的數據庫和SQL接口層之間提供了底層的橋樑,主要類包括Qt SQL模塊中的QSqlDriverQSqlDriverCreatorQSqlDriverCreatorBaseQSqlDriverPluginQSqlResulthtml

1、QSqlDriver

QSqlDriver是訪問具體SQL數據庫的抽象基類,不能直接使用。若是要建立自定義的數據庫驅動,能夠根據須要重寫QSqlDriver類的純虛函數和虛函數。sql

自定義數據庫驅動數據庫

QSqlDatabase負責加載和管理數據庫驅動插件。當某個數據庫添加時,相應的數據庫驅動插件會被加載。QSqlDatabase依靠驅動插件爲QSqlDriverQSqlResult提供接口。ide

QSqlDriver是定義了SQL數據庫功能的抽象基類。函數

2、QSqlDriverCreator

    QSqlDriverCreator是爲指定驅動類型提供SQL驅動工廠的模板類。QSqlDriverCreator<T>實例化對象的類型T就是QSqlDriver的子類。spa

[virtual] QSqlDriver *QSqlDriverCreator::createObject() const插件

    對QSqlDriverCreatorBase::createObject()函數的重寫htm

3、QSqlDriverCreatorBase

QSqlDriverCreatorBaseSQL驅動工廠的基類。對象

[pure virtual] QSqlDriver *QSqlDriverCreatorBase::createObject() const接口

    重寫這個函數返回一個QSqlDriver子類的實例

4、QSqlDriverPlugin

    QSqlDriverPlugin類提供自定義QSqlDriver插件的抽象基類。

    SQL數據庫驅動插件是一個能被QT動態加載的自定義SQL數據庫驅動插件建立變得容易的簡單插件接口。

    寫SQL插件能夠經過派生QSqlDriverPlugin類實現,重寫純虛函數create(),使用宏Q_PLUGIN_METADATA()導出類。

pure virtual] QSqlDriver *QSqlDriverPlugin::create(const QString &key)

    建立並返回一個驅動名爲key的QSqlDriver對象

5、QSqlResult

    QSqlResult類提供了訪問具體SQL數據庫數據的抽象接口。

    一般會使用QSqlQuery代替QSqlResult,由於QSqlQuery提供了具體數據庫的QSqlResult實現的通用包裝。

    若是經過派生QSqlDriver實現自定義SQL驅動,須要提供實現了所有純虛函數和須要的虛函數的自定義的QSqlResult子類。

[protected] QSqlResult::QSqlResult(const QSqlDriver *db)

    使用數據庫驅動db構建一個QSqlResult對象

相關文章
相關標籤/搜索