00. 目录
01. Qt SQL模块简介
本概述假定您至少具有SQL的基本知识。你应该能够理解简单的SELECT
,INSERT
,UPDATE
,和DELETE
语句。尽管QSqlTableModel类提供了不需要浏览SQL即可进行数据库浏览和编辑的接口,但强烈建议您对SQL有基本的了解
QT通过Qt SQL模块提供了对SQL数据库的支持,Qt SQL模块中的API分为三层:驱动层、SQL接口层、用户接口层。
如果要使用Qt SQL模块中的类,需要在工程文件(.pro文件)中添加QT += sql配置。
QT += sql
对应数据库部分的内容,大家可以在帮助中查看SQL Programming关键字。
1.1 驱动层
驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁,主要类包括QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin和QSqlResult。
1.2 SQL接口层
SQL接口层提供了对数据库的访问,主要类包括Qt SQL模块中的QSqlDatabase、QSqlQuery、QSqlError、QSqlField、QSqlIndex和QSqlRecord。 QSqlDatabase用来连接数据库,QSqlQuery类用来与数据库实现数据交互。
1.3 用户接口层
用户接口层主要包括Qt SQL模块中的QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel。用户接口层的类实现了将数据库中的数据链接到窗口部件上,是使用模型/视图框架实现的,是更高层次的抽象,即便不熟悉SQL也可以操作数据库。需要注意的是,在使用用户接口层的类之前必须先实例化QCoreApplication对象。
02. 数据库类
这些类提供对SQL数据库的访问。
03. 数据库驱动
Qt SQL模块使用数据库驱动和不同的数据库接口进行通信。由于Qt的SQL模块的接口是独立于数据库的,所以所有具体数据库的代码包含在了这些驱动中。QT本身提供了多种数据库驱动,并且可以添加其他数据库驱动。QT提供的数据库驱动源码可以作为编写自定义驱动的模型。
目前Qt5.12支持的数据库驱动如下:
04. 测试代码
可以使用QSqlDatabase中相关方法测试当前Qt版本默认支持的数据库驱动
测试代码如下:
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//获取当前Qt支持的驱动列表
QStringList drivers = QSqlDatabase::drivers();
foreach (QString driver, drivers)
{
qDebug() << driver;
}
return a.exec();
}
测试结果如下:
05. 附录
关键词:SQL Programming
暂无评论内容