QT SQL数据库操作流程

10 篇文章 1 订阅

Qt中的QtSql模块提供了对数据库的支持,该模块中的众多类基本上可以分为三层,如下图所示。

其中驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁;

SQL接口层提供了对数据库的访问,其中的QSqlDatabase类用来创建连接,QSqlQuery类可以使用SQL语句来实现与数据库交互,其他几个类对该层提供了支持;

用户接口层的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用前一章的模型/视图框架实现的,它们是更高层次的抽象,即便不熟悉SQL也可以操作数据库。

如果要使用QtQql模块中的这些类,需要在项目文件(.pro文件)中添加QT += sql这一行代码。对应数据库部分的内容,大家可以在帮助中查看SQL Programming关键字。

参考:http://www.qter.org/forum.php?mod=viewthread&tid=153


调用流程如下:


参考:http://www.qter.org/forum.php?mod=viewthread&tid=161&extra=page%3D1%26filter%3Dauthor%26orderby%3Ddateline%26orderby%3Ddateline



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt 实现连接 SQLite 数据库流程可以分为以下几个步骤: 1. 下载 SQLite 库:从 SQLite 官网下载最新版的 SQLite 库。 2. 安装 SQLite 库:将下载的 SQLite 库解压缩到指定目录下,例如 `C:\SQLite`。 3. 在 Qt 项目中添加 SQLite 库:在 Qt 项目中,打开 `.pro` 文件,添加以下代码: ``` LIBS += -L"C:\SQLite" -lsqlite3 ``` 其中 `-L` 参数指定 SQLite 库所在的目录,`-l` 参数指定库文件名。 4. 引入 SQLite 头文件:在 Qt 项目中需要使用 SQLite 的源文件中,添加以下代码: ``` #include <sqlite3.h> ``` 5. 打开数据库:在需要打开数据库的地方,添加以下代码: ``` sqlite3 *db; int ret = sqlite3_open("test.db", &db); if (ret != SQLITE_OK) { qDebug() << "Failed to open database!"; } ``` 其中 `test.db` 是需要打开的数据库文件名,`db` 是打开数据库后返回的数据库指针。 6. 执行 SQL 查询语句:在需要执行 SQL 查询语句的地方,添加以下代码: ``` const char *sql = "SELECT * FROM person"; sqlite3_stmt *stmt = nullptr; int ret = sqlite3_prepare_v2(db, sql, -1, &stmt, nullptr); if (ret != SQLITE_OK) { qDebug() << "Failed to prepare SQL statement!"; } while (sqlite3_step(stmt) == SQLITE_ROW) { int id = sqlite3_column_int(stmt, 0); QString name = QString::fromUtf8((const char*)sqlite3_column_text(stmt, 1)); int age = sqlite3_column_int(stmt, 2); qDebug() << "ID:" << id << " Name:" << name << " Age:" << age; } sqlite3_finalize(stmt); ``` 其中 `SELECT * FROM person` 是需要执行的 SQL 查询语句,`stmt` 是 SQL 语句执行后返回的结果集指针。 7. 关闭数据库:在不需要使用数据库的地方,添加以下代码: ``` sqlite3_close(db); ``` 以上就是 Qt 实现连接 SQLite 数据库流程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值