【Qt】SQLite数据库连接
【摘要】 介绍QT中使用SQLite的基本用法,包括创建数据库连接,执行SQL语句操作数据库,关闭数据库等基本用法。
SQLite
SQLite是一款轻量型数据库,目前已被世界广泛应用。
SQLite是一个c语言库,该数据库的特点有小型、快速、自包含、高可靠性、全功能等。SQLite文件格式是稳定的、跨平台的、向后兼容。
兼容性
向前兼容(Forward Compatibility):指老版本可以使用新版本产生的数据。
向上兼容(Upward Compatibility):与向前兼容相同。
向后兼容(Backward Compatibility):指新的版本可以使用老版本产生的数据。
向下兼容(Downward Compatibility):与向后兼容相同。
SQLite向后兼容,即新版本可以使用老版本产生的数据库文件。
QT中使用SQLite数据库
SQLite数据库的整个数据库内容都保存在一个单一的文件中,理解为一个数据库文件是一个数据库。
创建数据库连接
Qt使用类QSqlDatabase进行创建连接、管理数据库等。
// 增加数据库连接
// type:数据库驱动类型
// connectionName:连接名称
QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection))
SQLite数据库连接方式如下:
QSqlDatabase dataBase = QSqlDatabase::addDatabase("QSQLITE", "sqliteDbConnection");
connectionName连接名可以省略,若是省略,则为默认连接。
当前可用数据库驱动类型表
type | 数据库 |
---|---|
QDB2 | IBM DB2 |
QIBASE | Borland InterBase Driver |
QMYSQL | MySQL Driver |
QOCI | Oracle Call Interface Driver |
QODBC | ODBC Driver (includes Microsoft SQL Server) |
QPSQL | PostgreSQL Driver |
QSQLITE | SQLite version 3 or above |
QSQLITE2 | SQLite version 2 |
QTDS | Sybase Adaptive Server |
Qt查看可支持的数据库驱动
// 获取可用的所有数据库驱动列表
static QStringList QSqlDatabase::drivers();
// 判断数据库驱动是否可用
static bool QSqlDatabase::isDriverAvailable(const QString &name)
初始化数据库
SQLite数据库文件后缀是.rdb;
SQLite数据库连接方式如下:
QString fileName = "D:\SQLite\demo.rdb";
dataBase.setDatabaseName(fileName);
打开数据库
操作数据库之前,需要先成功打开数据库。
dataBase.open()
获取所有数据库表
获取所有数据库表,以便后续操作等。
QStringList tableList = dataBase.tables();
创建query
Qt使用QSqlQuery来操作数据库,query需要关联数据库dataBase,以便对该数据库进行操作。
QSqlQuery query(dataBase);
创建数据库表
创建数据库表demoTable,若不存在,则创建demoTable表。
if(!tableList.contains("tableName"))
{
QString createTable = QString("CREATE TABLE IF NOT EXISTS demoTable(\
no INTEGER PRIMARY KEY,\
name VARCHAR(256) NOT NULL DEFAULT '', \
count INTEGER NOT NULL DEFAULT '1');");
if(!query.exec(createTable))
{
return false;
}
}
else
{
// 其它操作
}
SQL语句执行
使用QSqlQuery对数据库进行增删改查。
query.exec(sqlQueryInfo);
关闭数据库
数据库使用结束后,需要进行关闭,以释放资源。
dataBase.close();
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)