第一步:下载SQLIte
下载地址: https://www.sqlite.org/download.html
下载两个内容:
- sqlite-dll-win64-x64-3360000.zip
- sqlite-tools-win32-x86-3360000.zip
下载完后直接解压,放到到一个文件夹下(这个文件夹可以随便在哪里)。如下图:
第二步:使用SQLite
(网上好多教程都是到这一步就配置环境变量,不知道他们脑子咋想的,轻量级数据库SQLIte本来就应该随着项目到处走。)
-
直接在解压且合并后SQLIte文件夹下的空白处按住Shift+右键,然后点击“在此处打开powershell窗口”
-
然后在powershell中输入“.\sqlite3”,然后回车确认(或者直接双击sqlite3.exe);
.\sqlite3
注意:由于没有设置环境变量,每次都必须在相应的文件夹下打开powershell。
- 创建一个数据库(xxx.db文件)
输入命令:.open users.db 然后回车
.open users.db
为什么要创建db文件,废话不创建数据都在内存里,不会记录。一关机或者SQLIte程序关了,数据就没了。
- 创建表
create table students(
ID int primary key not null,
name text not null,
age int not null
);
- 查看创建的表:.tables
.tables
- 插入数据
insert into students(id,name,age) values(1001,"xiaoming",18);
- 查询表
select * from students;
分割线------------------------------------------------------
Qt creator (C++)链接SQLite
第一步 使用Qt creator 创建一个项目,并且要编译生成一个Debug或者Release文件夹
第二步 将之前“解压并合并的SQLite文件夹”复制到“此文件夹”下
注意:此SQLite文件夹下已经有个password.db文件了,里面还有一个students表,表里面有一条记录。
“解压并合并的SQLite文件夹”:是指之前说的: sqlite-dll-win64-x64-3360000.zip 和 sqlite-tools-win32-x86-3360000.zip 两个压缩包解压后放在同一个文件夹下,例都放在SQLite文件夹下
“此文件夹”:是指生成的Debug文件夹或者是Release文件夹
第三步 在Qt Creator 的项目中的"xxx.pro"文件中添加 QT += sql
第四步 代码链接数据库
1、必要的头文件
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
2、 代码演示
//这条语句会打印:drivers ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
qDebug() << "drivers" << QSqlDatabase::drivers();
// 加载驱动:这里的驱动必须是上一句打印里面的完全一样,必须是大写,不然会报错:QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
QSqlQuery sql_query;
// 建立链接(链接一个数据库文件)
db.setDatabaseName("SQLite/password.db");
if(!db.open())
{
qDebug()<<"Error: Failed to connect database." << db.lastError();
}else
{
qDebug() << "Succeed to connect database." ;
}
//查询
sql_query.exec("select * from students;");
if(!sql_query.exec())
{
qDebug()<<sql_query.lastError();
}
else
{
while(sql_query.next())
{
int id = sql_query.value(0).toInt();
QString name = sql_query.value(1).toString();
int age = sql_query.value(2).toInt();
qDebug()<<"ID = "<<id<<" ; NAME = "<<name <<" ; AGE = "<<age;
}
}
db.close();
运行结果截图: