Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSqlDatabase
数据库模块的常用方法及灵活运用。
Qt SQL模块是Qt框架的一部分,它提供了一组类和函数,用于在Qt应用程序中进行数据库操作。这个模块的目标是简化数据库访问和操作,并提供一致的接口,使得开发者可以方便地与不同数据库系统进行交互。一般SQL组件常用的操作,包括读取数据、插入数据、更新数据、删除数据功能,这四个功能我将分别介绍它是如何使用的。
在使用此模块时必须要引入对应文件,需要在*.pro
文件内增加QT += sql
,并在头文件内导入QSqlDatabase
模块才可以正常使用,该模块是用于管理数据库连接的核心类之一。它提供了一系列方法,使得在Qt应用程序中进行数据库操作变得方便和灵活。QSqlDatabase
类的灵活性使得开发者能够与多种数据库系统(如SQLite、MySQL、PostgreSQL等)进行交互,而不必担心底层数据库细节。这有助于实现跨数据库的可移植性和更高层次的数据库访问抽象。
下面是QSqlDatabase
类中一些常用的方法,以表格形式进行说明和概述:
方法 | 描述 |
---|---|
QSqlDatabase::addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection)) |
添加一个数据库连接,其中type 指定数据库驱动类型,connectionName 指定连接的名称,默认为默认连接。返回创建的数据库连接对象。 |
QSqlDatabase::database(const QString &connectionName = QLatin1String(defaultConnection), bool open = true) |
获取指定连接名称的数据库连接对象。如果数据库连接不存在,会创建一个新的连接。如果open 为true ,则尝试打开数据库连接。 |
QSqlDatabase::removeDatabase(const QString &connectionName = QLatin1String(defaultConnection)) |
移除指定连接名称的数据库连接。如果该连接当前处于打开状态,则会被关闭。 |
QSqlDatabase::setHostName(const QString &host) |
设置数据库服务器的主机名。 |
QSqlDatabase::setDatabaseName(const QString &name) |
设置要连接的数据库的名称。 |
QSqlDatabase::setUserName(const QString &name) |
设置用于连接数据库的用户名。 |
QSqlDatabase::setPassword(const QString &password) |
设置用于连接数据库的密码。 |
QSqlDatabase::setPort(int port) |
设置数据库服务器的端口号。 |
QSqlDatabase::open() |
打开数据库连接。如果连接成功,返回true ,否则返回false 。 |
QSqlDatabase::close() |
关闭数据库连接。 |
QSqlDatabase::isOpen() |
判断数据库连接是否打开。返回true 表示连接已打开,false 表示连接未打开。 |
QSqlDatabase::tables(QSql::TableType type = QSql::Tables) |
返回数据库中的表的列表。可以指定表的类型,如QSql::Tables 表示用户表,QSql::SystemTables 表示系统表。 |
QSqlDatabase::commit() |
提交当前事务。 |
QSqlDatabase::rollback() |
回滚当前事务。 |
QSqlDatabase::transaction() |
开始一个新事务。 |
这些方法提供了管理和操作数据库连接的基本功能,包括连接数据库、设置连接参数、打开和关闭连接、执行事务等。在实际使用中,开发者可以根据需要选择适当的方法来管理数据库连接和执行数据库操作。
1.1 逐条记录插入
初始化数据库我们可以通过调用QSqlDatabase::addDatabase
来打开,在打开参数中支持多种数据库类型的选择,包括但不限于 SQLite
、MySQL
、PostgreSQL
、Oracle
、ODBC
等,每种数据库类型对应一个特定的驱动,开发者可以通过指定数据库类型和连接名称创建相应的数据库连接。
QSqlDatabase::addDatabase
是一个静态方法,用于向应用程序中添加一个数据库连接。此方法允许你为不同的数据库类型添加连接,并且你可以为每个连接指定一个唯一的名称。
static QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString