1. Qt数据库简介
Qt只是作为媒介去操作数据库,本身不具备数据库的功能,因此除了Qt以外,还需要在计算机中安装对应的数据库软件,但是由于SQLite数据库比较轻巧,因此Qt集成了SQLite数据库,此数据库是嵌入式中最常用的数据库。
实际上Qt支持以下类型的数据库产品:
在Qt项目中使用数据库必须在.pro项目配置文件中增加sql模块。
2. 连接与关闭
主要使用到的类是数据库连接类QSqlDatabase(数据库的连接)和数据库错误信息类QSqlError(可能出现的错误信息),涉及的函数有:
// 获得一个基于SQLite的数据库连接对象
QSqlDatabase QSqlDatabase::addDatabase("QSQLITE") [static]
// 设置SQLite数据库文件的名称(不同的数据库此函数表示不同的功能)
// 在运行之后,此文件会在构建目录中生成
void QSqlDatabase::setDatabaseName(const QString & name)
// 打开数据库连接
// 返回值是打开的结果,如果打开失败,可以通过lastError()函数获得错误信息
bool QSqlDatabase::open()
// 获得上一次数据库的错误信息
QSqlError QSqlDatabase::lastError() const
// 可以通过下面的函数把错误信息转换为字符串(实际上这些信息来自于底层数据库)
QString QSqlError::text() const
// 判断连接是否打开
bool QSqlDatabase::isOpen() const
// 关闭连接
void QSqlDatabase::close()
连接成功后会生成数据库文件。
3. 建表
QSqlQuery主要用于执行SQL语句,相关函数如下。
// 执行SQL语句
// 参数是要执行的SQL语句
// 返回值是语句本身执行的结果,并不是数据操作的结果
bool QSqlQuery::exec(const QString & query)
// 用法与之前的同名函数完全相同
QSqlError QSqlQuery::lastError() const
参考建表语句:
CREATE TABLE customer(id INTEGER PRIMARY KEY,name TEXT,money REAL,rate REAL);
建表成功后,