在 Qt 中使用 SQLite 数据库非常简单,Qt 提供了 QSqlDatabase 和 QSqlQuery 类来处置惩罚数据库的毗连、查询、插入、更新和删除等操作。下面是一个示例步伐,展示如何在 Qt 中使用 SQLite 数据库。
示例代码
1. 项目设置
起首,确保在项目的 .pro 文件中添加对 Qt SQL 模块的支持:
2. SQLite 数据库操作示例
下面是一个简单的 Qt C++ 步伐,展示如何创建 SQLite 数据库、创建表、插入数据、查询数据等操作。
- #include <QCoreApplication>
- #include <QSqlDatabase>
- #include <QSqlQuery>
- #include <QSqlError>
- #include <QSqlRecord>
- #include <QDebug>
- void initializeDatabase()
- {
- // 创建或打开 SQLite 数据库
- QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
- db.setDatabaseName("example.db");
- if (!db.open()) {
- qDebug() << "Error: Failed to connect to database." << db.lastError();
- return;
- }
- qDebug() << "Database connected successfully.";
- // 创建表
- QSqlQuery query;
- QString createTableQuery = R"(
- CREATE TABLE IF NOT EXISTS people (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name TEXT NOT NULL,
- age INTEGER
- )
- )";
- if (!query.exec(createTableQuery)) {
- qDebug() << "Error: Failed to create table." << query.lastError();
- } else {
- qDebug() << "Table created successfully.";
- }
- }
- void insertData(const QString &name, int age)
- {
- QSqlQuery query;
- query.prepare("INSERT INTO people (name, age) VALUES (:name, :age)");
- query.bindValue(":name", name);
- query.bindValue(":age", age);
- if (!query.exec()) {
- qDebug() << "Error: Failed to insert data." << query.lastError();
- } else {
- qDebug() << "Data inserted successfully.";
- }
- }
- void queryData()
- {
- QSqlQuery query("SELECT id, name, age FROM people");
- while (query.next()) {
- int id = query.value(0).toInt();
- QString name = query.value(1).toString();
- int age = query.value(2).toInt();
- qDebug() << "ID:" << id << "Name:" << name << "Age:" << age;
- }
- }
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- // 初始化数据库
- initializeDatabase();
- // 插入数据
- insertData("John Doe", 30);
- insertData("Jane Doe", 25);
- // 查询数据
- queryData();
- return a.exec();
- }
复制代码 代码说明
- 创建或打开数据库:
- 使用 QSqlDatabase::addDatabase("QSQLITE") 添加一个 SQLite 数据库毗连。
- db.setDatabaseName("example.db"); 设置数据库文件名。假如文件不存在,SQLite 会主动创建一个新的数据库文件。
- 创建表:
- 使用 QSqlQuery 执行 SQL 语句来创建一个名为 people 的表。表包罗 id(自增主键)、name(文本)和 age(整数)三个字段。
- 插入数据:
- 使用 QSqlQuery::prepare 预备 SQL 插入语句,并使用 bindValue 绑定参数,然后执行 exec() 来插入数据。
- 查询数据:
- 使用 QSqlQuery 执行 SQL 查询,并使用 query.next() 遍历结果集。query.value(index) 用于访问每一行的字段值。
运行结果
当你运行这个步伐时,输出可能如下所示:
- Database connected successfully.
- Table created successfully.
- Data inserted successfully.
- Data inserted successfully.
- ID: 1 Name: John Doe Age: 30
- ID: 2 Name: Jane Doe Age: 25
复制代码 总结
通过这个示例,你学会了如何在 Qt 中使用 SQLite 数据库,包括创建数据库、创建表、插入数据和查询数据的根本操作。Qt 的 SQL 模块提供了一个简便的接口,使用它可以轻松地集成 SQLite 或其他 SQL 数据库。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |