Qt数据库(2) - 数据库接口类概览(ver 5.14.0)

Qt数据库(2) - 数据库接口类概览(ver 5.14.0)

Qt数据库接口用于连接和操作数据库,逻辑上共分为三层:

  • 驱动层
  • SQL API层
  • 用户界面层

驱动层
这一层在特定数据库和SQL API层之间提供低级别的沟通桥梁。

SQL API层
这一层用于访问数据库,QSqlDataBase类用于创建数据库链接,QSqlQuery类用于与数据库进行交互(执行sql语句),其它还提供了QSqlError(执行sql语句产生的错误信息)、QSqlField(表字段信息)、QSqlIndex(表索引)和QSqlRecord(记录信息)。

用户界面层
这些类用于将数据库中的数据和一些widgets联系在一起,这些类包括QSqlQueryModel、QSqlTableModel和QSqlRelationalTableModel,这三个类可用于Qt的model/View框架。

  • QSqlQueryModel,需要执行sql语句从数据库中获取数据
  • QSqlTableModel,不需要执行sql语句,自带接口,只读
  • QSqlRelationalTableModel,在QSqlTableModel基础上支持读写

在这三层api的基础上,你可以调用QSqlQuery对数据库进行访问,执行增删改查操作。也可以通过用户界面层的三个Model,以表格或是列表的形式显示数据库中某个表或某个视图的数据。还可以实现自己的委托(QStyledItemDelegate)来设置表格中单元的不同显示效果,或是用QSortFilterProxyModel实现模糊搜索,等等。