C++ 使用sqlite3
时间: 2023-07-11 16:04:18 浏览: 191
SQLite3是一款轻量级的关系型数据库管理系统,它是以C语言写成的,并且提供了C语言的API接口。要在C++中使用SQLite3,可以使用SQLite C/C++接口,该接口包含在SQLite3的源代码中,可以通过下载SQLite3的源码来获得。
以下是在C++中使用SQLite3的基本步骤:
1. 下载SQLite3的源代码并解压缩。
2. 在C++项目中添加SQLite3的源代码文件。
3. 在需要使用SQLite3的地方包含SQLite3的头文件:
```c++
#include <sqlite3.h>
```
4. 打开数据库连接:
```c++
sqlite3* db;
int rc = sqlite3_open("database.db", &db);
if(rc != SQLITE_OK) {
// 连接失败
}
```
这里的`database.db`是数据库文件的名称,如果该文件不存在,则会自动创建。
5. 执行SQL语句:
```c++
char* errmsg;
int rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)", nullptr, nullptr, &errmsg);
if(rc != SQLITE_OK) {
// 执行SQL语句失败
}
```
上面的SQL语句创建了一个名为`users`的表,该表包含三个字段:`id`、`name`和`age`。
6. 查询数据:
```c++
sqlite3_stmt* stmt;
int rc = sqlite3_prepare_v2(db, "SELECT * FROM users", -1, &stmt, nullptr);
if(rc != SQLITE_OK) {
// 查询失败
}
while(sqlite3_step(stmt) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
const char* name = (const char*)sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
// 处理查询结果
}
sqlite3_finalize(stmt);
```
上面的代码查询了`users`表中的所有数据,并逐行读取数据。`sqlite3_prepare_v2`函数用于准备SQL语句,`sqlite3_step`函数用于执行SQL语句并读取结果,`sqlite3_finalize`函数用于释放资源。
7. 关闭数据库连接:
```c++
sqlite3_close(db);
```
关闭数据库连接会释放所有相关资源,包括打开的文件句柄、内存等。
SQLite3的API接口非常简单,使用起来也比较方便,但需要注意的是,SQLite3不支持并发访问,因此在多线程环境中使用时需要注意线程安全问题。
阅读全文