在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;
    }
}
相关推荐
MM_MS12 分钟前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂39 分钟前
LaTeX 语法入门指南
开发语言·latex
njsgcs1 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_991 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
古城小栈1 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90901 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体11 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9981 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
AI小怪兽2 小时前
基于YOLOv13的汽车零件分割系统(Python源码+数据集+Pyside6界面)
开发语言·python·yolo·无人机
Z1Jxxx2 小时前
加密算法加密算法
开发语言·c++·算法