Qt之SQLite資料庫的使用 2

2021-08-23 14:01:58 字數 1315 閱讀 3895

驅動層為具體的資料庫和sql介面層之間提供了底層的橋梁,主要類包括qt sql模組中的qsqldriver、qsqldrivercreator、qsqldrivercreatorbase、qsqldriverplugin和qsqlresult。

qsqldriver是訪問具體sql資料庫的抽象基類,不能直接使用。如果要建立自定義的資料庫驅動,可以根據需要重寫qsqldriver類的純虛函式和虛函式。

自定義資料庫驅動

qsqldatabase負責載入和管理資料庫驅動外掛程式。當某個資料庫新增時,相應的資料庫驅動外掛程式會被載入。qsqldatabase依靠驅動外掛程式為qsqldriver和qsqlresult提供介面。

qsqldriver是定義了sql資料庫功能的抽象基類。

qsqldrivercreator是為指定驅動型別提供sql驅動工廠的模板類。qsqldrivercreator例項化物件的型別t就是qsqldriver的子類。

[virtual] qsqldriver *qsqldrivercreator::createobject() const

對qsqldrivercreatorbase::createobject()函式的重寫

qsqldrivercreatorbase是sql驅動工廠的基類。

[pure virtual] qsqldriver *qsqldrivercreatorbase::createobject() const

重寫這個函式返回乙個qsqldriver子類的例項

qsqldriverplugin類提供自定義qsqldriver外掛程式的抽象基類。

sql資料庫驅動外掛程式是乙個能被qt動態載入的自定義sql資料庫驅動外掛程式建立變得容易的簡單外掛程式介面。

寫sql外掛程式可以通過派生qsqldriverplugin類實現,重寫純虛函式create(),使用巨集q_plugin_metadata()匯出類。

pure virtual] qsqldriver *qsqldriverplugin::create(const qstring &key)

建立並返回乙個驅動名為key的qsqldriver物件

qsqlresult類提供了訪問具體sql資料庫資料的抽象介面。

通常會使用qsqlquery代替qsqlresult,因為qsqlquery提供了具體資料庫的qsqlresult實現的通用包裝。

如果通過派生qsqldriver實現自定義sql驅動,需要提供實現了全部純虛函式和需要的虛函式的自定義的qsqlresult子類。

[protected] qsqlresult::qsqlresult(const qsqldriver *db)

使用資料庫驅動db構建乙個qsqlresult物件

Qt資料庫之訪問 SQLite

sqlite 是乙個開源的嵌入式關聯式資料庫,實現自包容 零配置 支援事務的sql資料庫引擎。其特點是高度便攜 使用方便 結構緊湊 高效 可靠。整個資料庫 定義 表 索引和資料本身 都在宿主主機上儲存在乙個單一的檔案中。sqlite 支援跨平台,同乙個 sqlite 的資料庫檔案,可以在 windo...

Qt使用sqlite資料庫的問題

之前使用資料庫用的都是mysql,覺得挺方便的,但最近做的程式要在linux開發板上跑,就使用了qt自帶的輕量級資料庫sqlite,但使用過程中遇到了一些問題 標頭檔案 include qsqldatabase db public explicit widget qwidget parent 0 w...

在Qt中使用SQLite資料庫

sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite qt自帶驅動 引入sql模組 在qt專案檔案 pro檔案 中,加入sql模組 qt sql include include include檢查連線...