在现代软件开发中,C++ SQLite教程是许多初学者和中级开发者关注的重点。SQLite 是一款轻量级、零配置、嵌入式的数据库引擎,非常适合用于桌面应用、移动应用或小型项目的数据存储。本文将带你从零开始,详细讲解如何在 C++ 项目中集成并使用 SQLite 数据库,即使你是编程小白也能轻松上手!

SQLite 具有以下优势:
SQLite 官方提供了 C 语言接口,而 C++ 可以直接调用这些接口。你需要两个文件:
sqlite3.h:头文件sqlite3.c:实现文件(可直接编译进你的项目)你可以从 SQLite 官网 下载 “Source Code” 中的 amalgamation 版本(通常是一个 zip 包,包含上述两个文件)。
我们将编写一个简单的程序,完成以下操作:
假设你的项目目录如下:
/my_cpp_sqlite_project├── main.cpp├── sqlite3.h└── sqlite3.c
#include <iostream>#include <sqlite3.h>// 回调函数:用于处理 SELECT 查询结果static int callback(void *data, int argc, char **argv, char **azColName) { std::cout << "--- 查询结果 ---" << std::endl; for (int i = 0; i < argc; i++) { std::cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << std::endl; } return 0;}int main() { sqlite3 *db; char *errMsg = nullptr; int rc; // 打开数据库(如果不存在则自动创建) rc = sqlite3_open("test.db", &db); if (rc != SQLITE_OK) { std::cerr << "无法打开数据库: " << sqlite3_errmsg(db) << std::endl; sqlite3_close(db); return 1; } 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, nullptr, nullptr, &errMsg); if (rc != SQLITE_OK) { std::cerr << "创建表失败: " << errMsg << std::endl; sqlite3_free(errMsg); } else { std::cout << "表 users 创建成功!" << std::endl; } // 插入数据 const char *sql_insert = "INSERT INTO users (name, age) VALUES ('张三', 25);"; rc = sqlite3_exec(db, sql_insert, nullptr, nullptr, &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;"; rc = sqlite3_exec(db, sql_select, callback, nullptr, &errMsg); if (rc != SQLITE_OK) { std::cerr << "查询失败: " << errMsg << std::endl; sqlite3_free(errMsg); } // 关闭数据库 sqlite3_close(db); std::cout << "数据库已关闭。" << std::endl; return 0;}在终端中执行以下命令(以 GCC 为例):
g++ main.cpp sqlite3.c -o myapp -lstdc++./myapp
运行后,你会看到类似以下输出:
数据库已成功打开!表 users 创建成功!数据插入成功!--- 查询结果 ---id = 1name = 张三age = 25数据库已关闭。
sqlite3_errmsg() 获取错误信息掌握这些基础操作后,你就可以进行更复杂的 C++数据库编程 了,比如事务处理、预编译语句(防止 SQL 注入)、BLOB 数据操作等。
通过本篇 SQLite C++开发 教程,你应该已经掌握了如何在 C++ 项目中集成 SQLite,并完成基本的增删改查操作。SQLite 的简洁性和高效性使其成为 C++ 开发者理想的本地数据库解决方案。建议你动手实践,尝试扩展功能,比如添加用户输入、批量插入、条件查询等。
希望这篇教程对你有所帮助!如果你有任何问题,欢迎在评论区留言交流。
本文由主机测评网于2025-12-05发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025123390.html