QT之数据库

1. Qt数据库简介

因为SQLite数据库体积较小,是唯一一款Qt内置的数据库,使用时无需单独安装数据库,也无需编译对应的驱动程序。SQLite也是嵌入式领域常用的数据库,这种数据库不适合作为服务器使用,但是适合成为程序本地数据库。

2. 连接数据库

相关函数如下:

// 连接数据库

// 参数:数据库的驱动名称

// 返回值:数据库连接对象

QSqlDatabase QSqlDatabase::addDatabase(const QString & type) [static]

// Qt为不同的数据库指定了一套统一的操作接口,不同的数据库调用此函数的功能有差别,如果数据库类型是SQLite,此函数表示设置数据库文件的名称,因为SQlite数据库是以单文件形式存在的。

// 参数:数据库文件名称,通常扩展名为.db或.db3,此处的数据库文件名称不写扩展名也可以使用,但是加上扩展名方便后续调试,建议加上。

void QSqlDatabase::setDatabaseName(const QString & name)

// 打开数据库连接,返回值为打开是否成功。

// 如果失败可以通过lastError()函数获得错误信息

// 如果成功,可以在构建目录中找到创建的数据库文件

bool QSqlDatabase::open()

// 获得上一次数据库错误的信息

// 返回值是错误信息封装类,可以通过QString QSqlError::text() const获得

QSqlError QSqlDatabase::lastError() const

// 数据库连接是否已经打开

bool QSqlDatabase::isOpen() const

// 关闭数据库连接

void QSqlDatabase::close()

3. 建表

一个建表语句如下所示:

CREATE TABLE dongman(\

    id      INTEGER PRIMARY KEY,\

name    TEXT,\

country TEXT,\

    star    INTEGER);

反斜杠表示QString内部的换行,也可以使用一行完成。

4. 增删改

增删改都需要录入的UI输入,常规方法是获得用户输入后,与SQL语句进行字符串拼接,形成最终的SQL语句 。这种做法在Qt中已经不推荐使用。

6. 查询

相关函数如下:

// 判断后续有无数据,如果有自动后移一位

bool QSqlQuery::next()

// 取出当前记录的某列数据

// 参数是列名

// 返回值是数据

QVariant QSqlQuery::value(const QString & name) const

// 取出当前记录的某列数据

// 参数是列序号,从0开始

// 返回值是数据

QVariant QSqlQuery::value(int index) const

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值