【QT】学习笔记:处理数据库 SQLite

在 Qt 中使用 SQLite 数据库非常简单,Qt 提供了 QSqlDatabaseQSqlQuery 类来处理数据库的连接、查询、插入、更新和删除等操作。下面是一个示例程序,展示如何在 Qt 中使用 SQLite 数据库。

示例代码

1. 项目配置

首先,确保在项目的 .pro 文件中添加对 Qt SQL 模块的支持:

QT += sql
2. SQLite 数据库操作示例

下面是一个简单的 Qt C++ 程序,展示如何创建 SQLite 数据库、创建表、插入数据、查询数据等操作。

#include 
#include 
#include 
#include 
#include 
#include 

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();
}

代码说明

  1. 创建或打开数据库

    • 使用 QSqlDatabase::addDatabase("QSQLITE") 添加一个 SQLite 数据库连接。
    • db.setDatabaseName("example.db"); 设置数据库文件名。如果文件不存在,SQLite 会自动创建一个新的数据库文件。
  2. 创建表

    • 使用 QSqlQuery 执行 SQL 语句来创建一个名为 people 的表。表包含 id(自增主键)、name(文本)和 age(整数)三个字段。
  3. 插入数据

    • 使用 QSqlQuery::prepare 准备 SQL 插入语句,并使用 bindValue 绑定参数,然后执行 exec() 来插入数据。
  4. 查询数据

    • 使用 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 数据库。

你可能感兴趣的:(数据库,qt,学习,SQLite)