#include <QSqlDatabase>
#include <QSqlQuery>
#include <QVariant>
#include <QDebug>
int main(int argc, char *argv[]) {
// 在Qt中,数据库操作通常在QCoreApplication之后创建
QCoreApplication app(argc, argv);
// 添加SQLite数据库驱动
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
// 设置数据库名称(文件路径)
db.setDatabaseName(":memory:"); // 使用内存数据库,也可以是文件路径
// 尝试打开数据库
if (!db.open()) {
qDebug() << "无法打开数据库";
return -1;
}
// 创建一个表
QSqlQuery query;
bool success = query.exec("CREATE TABLE IF NOT EXISTS people ("
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"firstname VARCHAR, "
"lastname VARCHAR)");
if (!success) {
qDebug() << "创建表失败:" << query.lastError();
return -2;
}
// 插入数据
success = query.exec("INSERT INTO people (firstname, lastname) "
"VALUES ('John', 'Doe')");
if (!success) {
qDebug() << "插入数据失败:" << query.lastError();
return -3;
}
// 查询数据
success = query.exec("SELECT * FROM people");
if (!success) {
qDebug() << "查询数据失败:" << query.lastError();
return -4;
}
while (query.next()) {
int id = query.value(0).toInt();
QString firstName = query.value(1).toString();
QString lastName = query.value(2).toString();
qDebug() << id << firstName << lastName;
}
// 关闭数据库
db.close();
return app.exec();
}
这段代码演示了如何在Qt框架中使用C++操作SQLite数据库。它创建了一个内存数据库,定义了一个表,插入了一条记录,并且执行了一个查询,打印出结果。这是学习如何在Qt中使用SQLite的一个很好的起点。