#include <iostream>
#include <sqlite3.h>
// 回调函数,用于处理查询结果
static int callback(void* data, int argc, char** argv, char** azColName) {
for (int i = 0; i < argc; i++) {
std::cout << azColName[i] << ": " << (argv[i] ? argv[i] : "NULL") << std::endl;
}
std::cout << std::endl;
return 0;
}
int main() {
sqlite3* DB;
int exit = 0;
// 打开或创建数据库文件
exit = sqlite3_open("example.db", &DB);
if (exit) {
std::cerr << "Error open DB " << sqlite3_errmsg(DB) << std::endl;
return -1;
}
std::string sql = "CREATE TABLE IF NOT EXISTS PERSON("
"ID INT PRIMARY KEY NOT NULL,"
"NAME TEXT NOT NULL,"
"AGE INT NOT NULL);";
// 执行 SQL 语句
char* errorMessage;
exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &errorMessage);
if (exit != SQLITE_OK) {
std::cerr << "SQL error: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Table created successfully" << std::endl;
}
// 插入数据
sql = "INSERT INTO PERSON (ID, NAME, AGE) VALUES (1, 'Alice', 30);"
"INSERT INTO PERSON (ID, NAME, AGE) VALUES (2, 'Bob', 25);";
exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &errorMessage);
if (exit != SQLITE_OK) {
std::cerr << "SQL error: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Records created successfully" << std::endl;
}
// 查询数据
sql = "SELECT * FROM PERSON;";
exit = sqlite3_exec(DB, sql.c_str(), callback, nullptr, &errorMessage);
if (exit != SQLITE_OK) {
std::cerr << "SQL error: " << errorMessage << std::endl;
sqlite3_free(errorMessage);
} else {
std::cout << "Query executed successfully" << std::endl;
}
// 关闭数据库连接
sqlite3_close(DB);
return 0;
}
#include <sqlite3.h>
引入 SQLite 的 C++ 接口。callback
来处理查询结果。每个查询结果行都会调用这个函数。sqlite3_open
函数打开或创建一个名为 example.db
的数据库文件。PERSON
的表,包含 ID
、NAME
和 AGE
三个字段。PERSON
表中插入两条记录。PERSON
表中的所有记录,并通过回调函数输出结果。sqlite3_close
函数关闭数据库连接。这段代码展示了如何在 Linux 环境下使用 C++ 和 SQLite 进行基本的数据库操作。
上一篇:linux 查看线程数
下一篇:linux nfs配置
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站