c++ 实现sqlite批量写入接口
时间: 2023-12-06 08:03:43 浏览: 126
以下是一个示例代码,可以将多个数据批量写入SQLite数据库:
```
#include <stdio.h>
#include <sqlite3.h>
int main() {
sqlite3 *db;
sqlite3_stmt *stmt;
char *errmsg;
int rc;
// 打开数据库
rc = sqlite3_open("test.db", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
// 准备SQL语句
const char *sql = "INSERT INTO user (name, age) VALUES (?, ?)";
rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (rc != SQLITE_OK) {
fprintf(stderr, "准备SQL语句失败: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
// 批量写入数据
const char *names[] = {"Alice", "Bob", "Charlie"};
int ages[] = {20, 25, 30};
int count = 3;
for (int i = 0; i < count; i++) {
// 绑定参数
sqlite3_bind_text(stmt, 1, names[i], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(stmt, 2, ages[i]);
// 执行SQL语句
rc = sqlite3_step(stmt);
if (rc != SQLITE_DONE) {
fprintf(stderr, "执行SQL语句失败: %s\n", sqlite3_errmsg(db));
sqlite3_finalize(stmt);
sqlite3_close(db);
return 1;
}
// 重置语句
sqlite3_reset(stmt);
}
// 释放资源
sqlite3_finalize(stmt);
sqlite3_close(db);
printf("数据写入成功!\n");
return 0;
}
```
上面的代码中,我们使用了`sqlite3_prepare_v2`函数来准备SQL语句,使用`sqlite3_bind_text`和`sqlite3_bind_int`函数来绑定参数,然后使用`sqlite3_step`函数来执行SQL语句。
由于我们要写入多条数据,所以我们使用了一个循环来重复执行这些操作。在每次循环中,我们都需要先绑定参数,然后执行SQL语句,最后重置语句,以便下一次绑定参数和执行SQL语句。
阅读全文