c++ sqlite3的使用
时间: 2024-02-27 19:49:45 浏览: 116
C++中使用SQLite3数据库可以通过SQLite3的C接口来实现。下面是一个简单的示例代码,演示了如何在C++中使用SQLite3进行数据库操作:
```cpp
#include <iostream>
#include <sqlite3.h>
int main() {
sqlite3* db;
int rc = sqlite3_open("test.db", &db);
if (rc) {
std::cerr << "Cannot open database: " << sqlite3_errmsg(db) << std::endl;
return rc;
}
char* errMsg;
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) {
std::cerr << "SQL error: " << errMsg << std::endl;
sqlite3_free(errMsg);
return rc;
}
rc = sqlite3_exec(db, "INSERT INTO users (name, age) VALUES ('John', 25);", nullptr, nullptr, &errMsg);
if (rc != SQLITE_OK) {
std::cerr << "SQL error: " << errMsg << std::endl; sqlite3_free(errMsg);
return rc;
}
sqlite3_stmt* stmt;
rc = sqlite3_prepare_v2(db, "SELECT * FROM users;", -1, &stmt, nullptr);
if (rc != SQLITE_OK) {
std::cerr << "SQL error: " << sqlite3_errmsg(db) << std::endl;
return rc;
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
const unsigned char* name = sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
std::cout << "ID: " << id << ", Name: " << name << ", Age: " << age << std::endl;
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}
```
上述代码首先打开名为"test.db"的数据库文件,如果文件不存在则会创建一个新的数据库文件。然后创建一个名为"users"的表,表中包含id、name和age三个字段。接着插入一条记录,然后查询并输出所有记录的内容。
需要注意的是,上述代码只是一个简单的示例,实际使用时可能需要更多的错误处理和安全性检查。
阅读全文