C++网络编程轻量级数据库sqlite3
在C++中使用SQLite3进行数据库操作的基本步骤如下:
- 包含头文件
#include <sqlite3.h>
。 - 调用
sqlite3_open()
打开数据库。 - 使用
sqlite3_exec()
执行SQL语句。 - 使用
sqlite3_get_table()
查询数据。 - 使用
sqlite3_close()
关闭数据库。
以下是一个简单的例子,展示了如何在C++中使用SQLite3:
#include <sqlite3.h>
#include <iostream>
int main() {
sqlite3* db;
char* errMsg = nullptr;
int rc;
// 打开数据库
rc = sqlite3_open("example.db", &db);
if (rc) {
std::cerr << "无法打开数据库: " << sqlite3_errmsg(db) << std::endl;
sqlite3_close(db);
return 1;
}
// 创建一个表
const char* createTableSQL = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);";
rc = sqlite3_exec(db, createTableSQL, nullptr, nullptr, &errMsg);
if (rc != SQLITE_OK) {
std::cerr << "SQL错误: " << errMsg << std::endl;
sqlite3_free(errMsg);
}
// 插入数据
const char* insertSQL = "INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');";
rc = sqlite3_exec(db, insertSQL, nullptr, nullptr, &errMsg);
if (rc != SQLITE_OK) {
std::cerr << "SQL错误: " << errMsg << std::endl;
sqlite3_free(errMsg);
}
// 查询数据
const char* selectSQL = "SELECT id, name, email FROM users;";
sqlite3_stmt* stmt;
rc = sqlite3_prepare_v2(db, selectSQL, -1, &stmt, nullptr);
if (rc == SQLITE_OK) {
while (sqlite3_step(stmt) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
const unsigned char* name = sqlite3_column_text(stmt, 1);
const unsigned char* email = sqlite3_column_text(stmt, 2);
std::cout << "ID: " << id << ", Name: " << name << ", Email: " << email << std::endl;
}
sqlite3_finalize(stmt);
} else {
std::cerr << "SQL错误: " << errMsg << std::endl;
sqlite3_free(errMsg);
}
// 关闭数据库
sqlite3_close(db);
return 0;
}
确保在编译时链接SQLite3库,例如使用g++:
g++ -o sqlite_example sqlite_example.cpp -lsqlite3
这个例子展示了如何创建一个表,插入数据,查询数据,以及关闭数据库。在实际应用中,你可能需要添加错误处理和资源管理的代码来确保内存和数据库资源被正确释放。
评论已关闭