【Qt之数据库操作】详解

编程入门 行业动态 更新时间:2024-10-28 11:20:33

【Qt之数据库操作】<a href=https://www.elefans.com/category/jswz/34/1770044.html style=详解"/>

【Qt之数据库操作】详解

Qt进行数据库操作主要用到sql模块的QSqlDatabase类及其他相关类。
如果要使用该sql模块。
.pro文件中添加QT += sql

概述

QSqlDatabase 类处理与数据库的连接。
QSqlDatabase 类提供了一个通过连接来访问数据库的接口。QSqlDatabase 的实例表示连接。通过支持的数据库驱动程序之一(派生自 QSqlDriver),连接提供对数据库的访问。或者,您可以从 QSqlDriver 派生自己的数据库驱动程序。有关更多信息,请参见如何编写自己的数据库驱动程序。
通过调用其中一个静态的 addDatabase() 函数创建一个连接(即 QSqlDatabase 的一个实例),在其中您可以指定要使用的驱动程序或驱动程序类型(取决于数据库类型)和连接名称。连接通过其自己的名称而不是与其连接的数据库的名称来标识。您可以对一个数据库建立多个连接。QSqlDatabase 还支持默认连接的概念,默认连接是无名称的连接。要创建默认连接,在调用 addDatabase() 时不传递连接名称参数。随后,如果在调用任何静态成员函数时未指定连接名称,将默认使用默认连接。以下代码片段展示了如何创建并打开到 PostgreSQL 数据库的默认连接:

  QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");db.setHostName("acidalia");db.setDatabaseName("customdb");db.setUserName("jito");db.setPassword("J0a1m8");bool ok = db.open();

一旦 QSqlDatabase 对象被创建,使用 setDatabaseName()、setUserName()、setPassword()、setHostName()、setPort() 和 setConnectOptions() 设置连接参数。然后调用 open() 来激活与数据库的物理连接。在打开连接之前,该连接是不可用的。
上述定义的连接将成为默认连接,因为我们没有给 addDatabase() 传递连接名称。随后,您可以通过在不连接名称参数的情况下调用 database() 来获取默认连接:

  QSqlDatabase db = QSqlDatabase::database();

QSqlDatabase 是一个值类。通过 QSqlDatabase 的一个实例对数据库连接进行的更改将影响到表示相同连接的其他 QSqlDatabase 的实例。使用 cloneDatabase() 基于现有连接创建一个独立的数据库连接。
警告:强烈建议不要将 QSqlDatabase 的副本保存为类的成员,因为这将阻止在关闭时正确清理该实例。如果需要访问现有的 QSqlDatabase,应使用 database() 进行访问。如果选择有一个 QSqlDatabase 成员变量,它需要在删除 QCoreApplication 实例之前进行删除,否则可能会导致未定义行为。
如果创建多个数据库连接,请在调用 addDatabase() 时为每个连接指定唯一的连接名称。使用带有连接名称的 database() 可以获取该连接。使用带有连接名称的 removeDatabase() 来删除连接。如果试图删除被其他 QSqlDatabase 对象引用的连接,QSqlDatabase 将发出警告。使用 contains() 可以查看给定的连接名称是否在连接列表中。

更多推荐

【Qt之数据库操作】详解

本文发布于:2023-11-17 03:59:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636663.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:详解   操作   数据库   Qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!