Qt SQLite的创建和使用
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
// 创建或打开一个SQLite数据库
QSqlDatabase createDatabase() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("example.db");
if (!db.open()) {
qDebug() << "无法打开数据库";
return QSqlDatabase();
}
QSqlQuery query;
bool exists = query.exec("SELECT name FROM sqlite_master WHERE type='table' AND name='people';");
if (!exists) {
bool success = query.exec("CREATE TABLE people (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);");
if (!success) {
qDebug() << "无法创建表格";
return QSqlDatabase();
}
}
return db;
}
// 使用数据库进行增删改查操作
void useDatabase(QSqlDatabase &db) {
QSqlQuery query;
// 插入数据
bool success = query.exec("INSERT INTO people (name, age) VALUES ('Alice', 30);");
if (!success) {
qDebug() << "插入数据失败";
}
// 查询数据
success = query.exec("SELECT * FROM people;");
if (success) {
while (query.next()) {
QString name = query.value(1).toString();
int age = query.value(2).toInt();
qDebug() << name << age;
}
} else {
qDebug() << "查询数据失败";
}
// 更新数据
success = query.exec("UPDATE people SET age = 31 WHERE name = 'Alice';");
if (!success) {
qDebug() << "更新数据失败";
}
// 删除数据
success = query.exec("DELETE FROM people WHERE name = 'Alice';");
if (!success) {
qDebug() << "删除数据失败";
}
}
// 主函数
int main() {
QSqlDatabase db = createDatabase();
if (db.isValid()) {
useDatabase(db);
db.close(); // 关闭数据库
}
QSqlDatabase::removeDatabase("QSQLITE"); // 移除数据库连接
return 0;
}
这段代码展示了如何在Qt中创建和使用SQLite数据库。首先,它尝试打开或创建一个名为"example.db"的数据库,并检查是否能够成功打开。如果数据库成功打开,它会检查是否存在一个名为"people"的表,如果不存在,它会创建一个包含id、name和age三个字段的表。接着,它演示了如何使用QSqlQuery来执行SQL语句进行数据的插入、查询、更新和删除操作。最后,在使用完数据库后,代码关闭了数据库连接并将其从QSqlDatabase中移除。
评论已关闭