在Qt5中SQLite3的使用

一、SQLite简要介绍

什么是SQLite

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。

就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件

为什么要用SQLite

SQLite作为轻量级开源数据库软件,目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快!

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。
  • SQLite 不需要配置,这意味着不需要安装或管理。
  • 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。
  • SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。
  • SQLite 是自给自足的,这意味着不需要任何外部的依赖。
  • SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。
  • SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。
  • SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
  • SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE,WinRT)中运行。

SQLite下载

1.SQLite官方下载链接:SQLite Home Page
所需要的四个文件如下如图所示:

二、在Qt5中使用步骤

第一步:导入sqlite3相关文件

2. 新建两个文件夹:

db:用于存放数据库文件(.db)

lib:用于存放lib文件(好处:易于区分后面继续添加其他的lib文件)

第二步:打开qt 修改 .pro文件,添加SQL模块

其实在我们上上述引用lib的时候就已经把库添加进来了。

第三步:简单测试一下 打开、关闭数据库

cpp 复制代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    initDb();
}

Widget::~Widget()
{
    delete ui;
}

Widget::initDb()
{
    sqlite3 *sqldb=nullptr;
    //打开数据库
    int res = sqlite3_open("db/video.db", &sqldb);
    if(res == 0)//打开成功
    {
        qDebug()<<"open dataBase success!"<<endl;
    }
    else
    {
        qDebug()<<sqlite3_errcode(sqldb)<<endl;
        qDebug()<<sqlite3_errmsg(sqldb)<<endl;
    }

    //关闭数据库
    res = sqlite3_close(sqldb);
    if(res!=0)
    {
        qDebug()<<sqlite3_errcode(sqldb)<<endl;
        qDebug()<<sqlite3_errmsg(sqldb)<<endl;
    }
}
相关推荐
西猫雷婶2 分钟前
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
开发语言·python·opencv
kiiila3 分钟前
【Qt】对象树(生命周期管理)和字符集(cout打印乱码问题)
开发语言·qt
小_太_阳28 分钟前
Scala_【2】变量和数据类型
开发语言·后端·scala·intellij-idea
直裾31 分钟前
scala借阅图书保存记录(三)
开发语言·后端·scala
唐 城1 小时前
curl 放弃对 Hyper Rust HTTP 后端的支持
开发语言·http·rust
码银3 小时前
【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割
开发语言·python
从善若水3 小时前
【2024】Merry Christmas!一起用Rust绘制一颗圣诞树吧
开发语言·后端·rust
黄金右肾3 小时前
Qt之数据库使用(十四)
sql·qt·sqlite·database
2401_858286114 小时前
115.【C语言】数据结构之排序(希尔排序)
c语言·开发语言·数据结构·算法·排序算法
Jelena技术达人4 小时前
Java爬虫获取1688关键字 item_search接口返回值详细解析
java·开发语言·爬虫