C++ sqlite3数据库
时间: 2023-07-28 08:12:17 浏览: 141
要在 C++ 中使用 SQLite3 数据库,首先需要下载和安装 SQLite3 库。然后可以使用 SQLite3 的 C API 在 C++ 中操作数据库。以下是一个简单的示例程序,可以用来创建一个数据库、创建一个表、插入数据、查询数据等操作。
```c++
#include <iostream>
#include <sqlite3.h>
int main()
{
sqlite3* db;
char* error_message = nullptr;
// 打开数据库
int result = sqlite3_open("test.db", &db);
if (result != SQLITE_OK) {
std::cerr << "Error opening database: " << sqlite3_errmsg(db) << std::endl;
return result;
}
// 创建表
const char* create_table_sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);";
result = sqlite3_exec(db, create_table_sql, nullptr, nullptr, &error_message);
if (result != SQLITE_OK) {
std::cerr << "Error creating table: " << error_message << std::endl;
sqlite3_free(error_message);
return result;
}
// 插入数据
const char* insert_sql = "INSERT INTO users (name, age) VALUES ('Alice', 25);";
result = sqlite3_exec(db, insert_sql, nullptr, nullptr, &error_message);
if (result != SQLITE_OK) {
std::cerr << "Error inserting data: " << error_message << std::endl;
sqlite3_free(error_message);
return result;
}
// 查询数据
const char* select_sql = "SELECT * FROM users;";
result = sqlite3_exec(db, select_sql, [](void* data, int argc, char** argv, char** columns) -> int {
std::cout << "id: " << argv[0] << ", name: " << argv[1] << ", age: " << argv[2] << std::endl;
return SQLITE_OK;
}, nullptr, &error_message);
if (result != SQLITE_OK) {
std::cerr << "Error selecting data: " << error_message << std::endl;
sqlite3_free(error_message);
return result;
}
// 关闭数据库
sqlite3_close(db);
return 0;
}
```
在此示例程序中,首先打开了一个名为 "test.db" 的数据库。然后创建了一个名为 "users" 的表,并向表中插入了一条数据。最后查询了表中的所有数据,并输出到控制台上。
需要注意的是,在实际使用中,需要根据具体情况编写更加复杂和完善的程序,例如处理错误信息、防止 SQL 注入攻击等等。
阅读全文