一、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;
}
}