首页 > 技术知识 > 正文

qt中SQLite基本使用

SQLite数据库,是一款轻型的数据库,比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快,不需要server,可以集成在软件中。在Qt自带SQLite库,所以在Qt中使用SQLite数据库是非常方便的,

添加SQL模块:

在Qt项目文件中(.pro)添加SQL模块 QT += sql

需要使用的头文件:

1#include <QtSql/QSqlDatabase> 2#include <QtSql/QSqlQuery> 3#include <QtSql/QSqlRecord>

连接数据库: QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”); db.setDatabaseName(“test.db”); if(!db.open()) { qDebug() << “test.db Open failed!”; return; }“`cpp QString insert_sql = “insert into student values (?, ?, ?)”; query.prepare(insert_sql); query.addBindValue(1); query.addBindValue(“张三”); query.addBindValue(25); if(!query.exec()) { qDebug() << query.lastError(); } else { qDebug() << QString::fromLocal8Bit(“inserted 张三!”); } ##### 断开数据库: db.close(); ##### 创建表格: 创建一个名为student的表格,表格包含三列,第一列是id,第二列是名字,第三列是年龄“`cpp QSqlQuery query(db); bool success = query.exec(“create table student (id int primary key, name varchar(30), age int)”); if(success) { qDebug() << QObject::tr(“数据库表创建成功!\n”); }else{ qDebug() << QObject::tr(“数据库表创建失败!\n”); } 添加一行数据: QString insert_sql = “insert into student values (?, ?, ?)”; query.prepare(insert_sql); query.addBindValue(1); query.addBindValue(“张三”); query.addBindValue(25); if(!query.exec()) { qDebug() << query.lastError(); } else { qDebug() << QString::fromLocal8Bit(“inserted 张三!”); } 修改数据: QString update_sql = “update student set name = :name where id = :id”; query.prepare(update_sql); query.bindValue(“:name”, “Qt”); query.bindValue(“:id”, 1); if(!query.exec()) { qDebug() << query.lastError(); } else { qDebug() << “updated!”; } 查询数据: QSqlQuery query; query.prepare(“SELECT * FROM sensors”); query.exec(); QSqlRecord recode = query.record(); while(query.next()) { qDebug() << query.value(“id”).toInt(); qDebug() << query.value(“name”).toInt(); qDebug() << query.value(“age”).toString(); }

猜你喜欢