SQLite3+Qt开发SQLite3简要介绍+在Qt5中的使用步骤
Posted 猿力猪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite3+Qt开发SQLite3简要介绍+在Qt5中的使用步骤相关的知识,希望对你有一定的参考价值。
目录
一、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
2.SQLite博主资源:sqlite3相关文件.zip-SQLite文档类资源-CSDN下载
所需要的四个文件如下如图所示:
二、在Qt5中使用步骤
第一步:导入sqlite3相关文件
1.打开qt工程文件
2. 新建两个文件夹:
data:用于存放数据库文件(.db)
lib:用于存放lib文件(好处:易于区分后面继续添加其他的lib文件)
.h文件和.dll文件直接放到qt工程文件下即可
第二步:打开qt 修改 .pro文件,添加SQL模块
LIBS += $$PWD/lib/sqlite3.lib
第三步:简单测试一下 打开、关闭数据库
main.cpp:
#include "widget.h"
#include <QApplication>
#include "sqlite3.h"
#include <QDebug>
int main(int argc, char *argv[])
QApplication a(argc, argv);
sqlite3 *sqldb=nullptr;
//打开数据库
int res = sqlite3_open("data/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;
return a.exec();
成功打开数据库!
参考:
QT5中使用SQLite_姜亚轲的博客-CSDN博客_qt sqlite
QT5中如何使用SQLite
SQLite是一款开源轻量级的数据库软件,本文主要介绍了QT5中使用SQLite的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 |
SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。
Qt5以上版本可以直接使用SQLite。
1、修改.pro文件,添加SQL模块:
QT += sql
2、main.cpp代码如下:
#include "mainwindow.h"
#include
//添加头文件
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//建立并打开数据库
QSqlDatabase database;
database = QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName("MyDataBase.db");
if (!database.open())
{
qDebug() << "Error: Failed to connect database." << database.lastError();
}
else
{
qDebug() << "Succeed to connect database." ;
}
//创建表格
QSqlQuery sql_query;
if(!sql_query.exec("create table student(id int primary key, name text, age int)"))
{
qDebug() << "Error: Fail to create table."<< sql_query.lastError();
}
else
{
qDebug() << "Table created!";
}
//插入数据
if(!sql_query.exec("INSERT INTO student VALUES(1, \\"Wang\\", 23)"))
{
qDebug() << sql_query.lastError();
}
else
{
qDebug() << "inserted Wang!";
}
if(!sql_query.exec("INSERT INTO student VALUES(2, \\"Li\\", 23)"))
{
qDebug() << sql_query.lastError();
}
else
{
qDebug() << "inserted Li!";
}
//修改数据
sql_query.exec("update student set name = \\"QT\\" where id = 1");
if(!sql_query.exec())
{
qDebug() << sql_query.lastError();
}
else
{
qDebug() << "updated!";
}
//查询数据
sql_query.exec("select * from student");
if(!sql_query.exec())
{
qDebug()<
3、应用程序输出如下:
4、创建的 MyDataBase.db 在build的这个文件夹下:
D:\\QT\\project\\build-sl-Desktop_Qt_5_10_1_MinGW_32bit-Debu
以上是关于SQLite3+Qt开发SQLite3简要介绍+在Qt5中的使用步骤的主要内容,如果未能解决你的问题,请参考以下文章
Qt sqlite3.o: undefined reference to symbol ‘dlclose@@GLIBC_2.2.5‘