QT开发:QT数据库操作与SQLite集成
#include <QtSql>
// 初始化数据库连接
bool initDB(QString dbName) {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbName);
if (!db.open()) {
qDebug() << "数据库打开失败!";
return false;
}
qDebug() << "数据库连接成功!";
return true;
}
// 执行SQL语句
bool execSQL(QString sql) {
QSqlQuery query;
if (!query.exec(sql)) {
qDebug() << "SQL语句执行失败:" << query.lastError();
return false;
}
return true;
}
// 创建表格
bool createTable() {
QString sql = "CREATE TABLE IF NOT EXISTS userInfo ("
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"name TEXT, "
"age INTEGER)";
return execSQL(sql);
}
// 插入数据
bool insertData(QString name, int age) {
QString sql = QString("INSERT INTO userInfo (name, age) VALUES ('%1', %2)")
.arg(name).arg(age);
return execSQL(sql);
}
// 查询数据
bool queryData() {
QSqlQuery query;
QString sql = "SELECT * FROM userInfo";
if (!query.exec(sql)) {
qDebug() << "查询失败:" << query.lastError();
return false;
}
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;
}
return true;
}
// 使用示例
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 初始化数据库
if (!initDB("test.db")) {
return -1;
}
// 创建表格
if (!createTable()) {
return -1;
}
// 插入数据
if (!insertData("张三", 25)) {
return -1;
}
// 查询数据
if (!queryData()) {
return -1;
}
return app.exec();
}
这段代码展示了如何在Qt中使用SQLite数据库。首先,我们通过initDB
函数初始化数据库连接,然后通过execSQL
函数执行SQL语句。我们创建了一个userInfo
表格,插入了一条数据,并且展示了如何查询这些数据。这个例子简单但是完整,展示了数据库操作的基本流程。
评论已关闭