本文记录在学习Qt数据库操作时,所需的概念和基本类作用。
1.常见驱动及对应数据库
Qt SQL 模块提供的常见驱动及对应数据库
驱动名 | 支持的数据库 |
QDB2 | IBM DB2 数据库, 7.1 及以上版本 |
QMYSQL | MySQL 或 MariaDB 数据库, 5.6 及以上版本 |
QOCI | Oracle Call Interface( OCI), 12.1 及以上版本 |
QODBC | 支持开放式数据库互连( open database connectivity, ODBC)的数据库,如 MS SQL Server、 Access |
QPSQL | PostgreSQL 数据库, 7.3 及以上版本 |
QSQLITE | SQLite 3 数据库 |
2. 主要类
类 | 介绍 | 使用 |
QAbstractTableModel | 是一个抽象类,基类 | 不能用于创建对象。 |
QSqlQueryModel | 表示 SQL 查询结果数据的模型类 | 只支持查询,不支持编辑; |
QSqlTableModel | 表示单个数据表的模型类 | 支持增删改查。QSqlTableModel与QTableView搭配使用,构成Model→View模型 |
QSqlRelationalTableModel | 表示关系数据表的模型类 | 支持通过关系带出外键名称 |
QSqlDatabase | 数据库连接 | 用于建立与数据库的连接 |
QSqlRecord | 记录 | 表示数据表中一条记录的类 |
QSqlField | 表示数据表或视图的字段的类 | |
QSqlIndex | 表示数据库中的索引的类 | |
QSqlQuery | 运行各种 SQL 语句的类 | |
DataWidgetMapper | 用于建立界面组件与字段的映射关系的类 | |
QSqlError | 用于表示数据库错误信息的类,可用于访问上一次出错的信息 | |
QSqlRelationalDelegate | 用于 QSqlRelationalTableModel 模型的一个编码字段的代理类, 这关系模型代理类提供一个 QComboBox 组件作为编辑器 | |
QSqlRelation | 用于表示数据表外键信息的类 |
2.1 模型类的继承关系
用→表示派生
QAbstractTableModel→QSqlQueryModel→QSqlTableModel→QSqlRelationTableModel