Qt 数据存储(一)

数据存储

保存和加载数据

QIODevice类是Qt Core中所有文件和数据存储设备的基类。所有用于读取和写入数据的类都继承自它。

设备的示例是QFileQBufferQTcpSocketQProcess

具体内容见如下链接:

Qt 中的 SQL 支持

Qt SQL模块使用驱动插件与多个数据库 API 进行通信。Qt 有适用于SQLite、MySQL、DB2、Borland InterBase、Oracle、ODBC 和 PostgreSQL 的驱动程序。如果 Qt 不提供所需的驱动程序,也可以开发自己的驱动程序。

Qt 的 SQL 类可以分为 3 层:

目的 示例类
驱动层 数据库和 SQL API 层之间的低级通信 QSqlDriver , QSqlDriverCreator
SQL API 层 提供对数据库的访问 QSql数据库, QSqlQuery
用户界面层 将数据库中的数据链接到数据感知小部件 QSqlQueryModel (readonly), QSqlTableModel (read/write), QSqlRelationalTableModel (read/write with foreign-key support)

使用除SQLite之外的所有 SQL 驱动程序,您可以连接到托管数据库系统的服务器。如果您使用嵌入式 MySQL 服务器,则不需要 MySQL 服务器即可使用该数据库系统。

有关如何构建 SQL 数据库驱动程序的说明,请参阅SQL 数据库驱动程序

Qt SQLite插件非常适合本地存储。SQLite是一个关系数据库管理系统,包含在一个小型 (~350 KiB) C 库中。与其他数据库管理系统相比,SQLite不是从客户端应用程序访问的单独进程,而是它的一个组成部分。SQLite对单个文件进行操作,打开连接时必须将其设置为数据库名称。如果文件不存在,SQLite将尝试创建它。

SQLite对多用户和多事务有一些限制。如果您正在从不同的事务读取或写入文件,您的应用程序可能会冻结,直到一个事务提交或回滚。

设置驱动程序部分后,可以使用类QSqlQueryModelQSqlTableModelQSqlRelationalTableModel访问数据。QSqlTableModelQSqlRelationalTableModel提供可与 Qt 的项目视图一起使用的可编辑模型。QSqlTableModel具有对单个表的读/写访问权限,而QSqlRelationalTableModel具有对主表的读/写访问权限(而不是具有外键的表)。

以下页面包含有关将 SQL 合并到应用程序中的信息:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Qt的模块主要包含四大部分,分别是 Qt基础模块 Qt附加模块 Qt增值模块 Qt Tools其中,基础模块和附加...
    秋冬不寒阅读 4,308评论 0 2
  • Qt包含了一组丰富的基础enablers,它们主要来自Qt Core[https://doc.qt.io/qt-5...
    秋冬不寒阅读 1,652评论 0 1
  • 界面 主窗口界面设计 标题栏:直接设Window-Title属性;Window-icon属性可加图标。底部状态栏:...
    码园老农阅读 9,281评论 1 13
  • 参考文档:qt官方教程:https://doc.qt.io/qt-5/sql-driver.html qt新版本都...
    NiceBlueChai阅读 7,336评论 0 1
  • 问1. 能否介绍下Qt WebEngine?Qt Webkit迁移到Qt WebEngine有哪些需要注意的地方?...
    XBruce阅读 4,671评论 0 1

友情链接更多精彩内容