在现代软件开发中,轻量级、嵌入式数据库系统如 SQLite 被广泛用于桌面应用、移动应用甚至物联网设备中。对于 C++ 开发者而言,掌握如何在 C++ 项目中集成和使用 SQLite 是一项非常实用的技能。本教程将手把手带你从零开始学习 C++ SQLite教程,即使你是编程小白,也能轻松上手!

SQLite 官方提供的是 C 语言接口,但我们可以直接在 C++ 中使用它。你也可以选择封装更好的 C++ 库(如 sqlite_modern_cpp 或 SQLiteCpp),但本教程使用原生 C 接口,便于理解底层原理。
步骤如下:
sqlite3.c 一起编译进你的程序。下面我们将创建一个简单的程序,实现以下功能:
test.db 的数据库文件。users 的表。完整代码如下:
#include <iostream>#include <sqlite3.h>// 回调函数:用于处理 SELECT 查询结果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; char *errMsg = 0; int rc; // 打开或创建数据库 rc = sqlite3_open("test.db", &db); if (rc) { std::cerr << "无法打开数据库: " << sqlite3_errmsg(db) << std::endl; return rc; } else { std::cout << "成功打开数据库!" << std::endl; } // 创建表 const char *sql_create = "CREATE TABLE IF NOT EXISTS users (" "id INTEGER PRIMARY KEY AUTOINCREMENT, " "name TEXT NOT NULL, " "age INTEGER);"; rc = sqlite3_exec(db, sql_create, 0, 0, &errMsg); if (rc != SQLITE_OK) { std::cerr << "SQL 错误: " << errMsg << std::endl; sqlite3_free(errMsg); } else { std::cout << "用户表创建成功!" << std::endl; } // 插入数据 const char *sql_insert = "INSERT INTO users (name, age) VALUES ('张三', 25);"; rc = sqlite3_exec(db, sql_insert, 0, 0, &errMsg); if (rc != SQLITE_OK) { std::cerr << "插入失败: " << errMsg << std::endl; sqlite3_free(errMsg); } else { std::cout << "数据插入成功!" << std::endl; } // 查询数据 const char *sql_select = "SELECT id, name, age FROM users;"; std::cout << "\n查询结果:\n"; rc = sqlite3_exec(db, sql_select, callback, 0, &errMsg); if (rc != SQLITE_OK) { std::cerr << "查询失败: " << errMsg << std::endl; sqlite3_free(errMsg); } // 关闭数据库 sqlite3_close(db); return 0;}假设你的主程序文件名为 main.cpp,并且已将 sqlite3.c 放在同一目录下,可以使用以下命令编译(以 GCC 为例):
g++ -o myapp main.cpp sqlite3.c -lstdc++ -lpthread -ldl在 Windows 上使用 MinGW 或 MSVC 时,可能不需要 -lpthread -ldl 参数。
运行程序后,你会看到类似如下输出:
成功打开数据库!用户表创建成功!数据插入成功!查询结果:id = 1name = 张三age = 25--------------------------sqlite3_close()。sqlite3_prepare_v2 和 sqlite3_bind_* 系列函数)。通过本篇 SQLite数据库C++ 教程,你已经掌握了如何在 C++ 项目中集成 SQLite、创建表、插入和查询数据。无论是开发桌面工具、游戏存档系统,还是嵌入式设备的数据记录模块,这些基础技能都至关重要。
如果你想进一步提升,可以学习使用更高级的 C++ 封装库(如 SQLiteCpp),它们提供了 RAII、异常处理等现代 C++ 特性,让代码更简洁安全。
希望这篇 C++操作SQLite 教程对你有帮助!如果你有任何疑问,欢迎在评论区留言交流。
本文由主机测评网于2025-12-13发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025127318.html