【C++拓展】vs2022使用SQlite3

文章目录


前言

SQLite3 是一种广泛应用的嵌入式数据库,以其轻量、高效和无服务器架构闻名。Visual Studio 2022(VS2022)作为一款强大的 IDE,提供了丰富的工具支持 C++ 开发。在 VS2022 中使用 SQLite3,可以帮助开发者快速集成数据库功能,并实现高效的数据管理。本文将介绍如何在 VS2022 中使用 SQLite3 的关键步骤和注意事项,为开发者提供入门指引。


下载所需要的文件

SQLite

首先需要下载源文件:

然后下载动态库:


然后把他们放到一起,如上

生成lib库

win 输入dev打开vs的命令行

cd进入刚刚的文件夹

输入:lib /MACHINE:X64 /DEF:sqlite3.def


最后生成lib

vs2022中使用SQlite

打开项目属性,VC++目录,把你刚刚的路径填进去:

然后打开输入,把sqlite3.lib填进去

示例代码

cpp 复制代码
#include <iostream>
#include <sqlite3.h> // SQLite3 的头文件

// 打开数据库的回调函数
static int callback(void* NotUsed, 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 = nullptr;
    int rc;

    // 打开或创建数据库
    rc = sqlite3_open("example.db", &db);
    if (rc) {
        std::cerr << "无法打开数据库: " << sqlite3_errmsg(db) << std::endl;
        return rc;
    }
    else {
        std::cout << "成功打开数据库!" << std::endl;
    }

    // 创建表
    const char* createTableSQL =
        "CREATE TABLE IF NOT EXISTS Users("
        "ID INTEGER PRIMARY KEY AUTOINCREMENT, "
        "Name TEXT NOT NULL, "
        "Age INTEGER NOT NULL);";
    rc = sqlite3_exec(db, createTableSQL, nullptr, nullptr, &errMsg);
    if (rc != SQLITE_OK) {
        std::cerr << "创建表失败: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    }
    else {
        std::cout << "表创建成功!" << std::endl;
    }

    // 插入数据
    const char* insertSQL =
        "INSERT INTO Users (Name, Age) VALUES ('Alice', 25), ('Bob', 30);";
    rc = sqlite3_exec(db, insertSQL, nullptr, nullptr, &errMsg);
    if (rc != SQLITE_OK) {
        std::cerr << "插入数据失败: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    }
    else {
        std::cout << "数据插入成功!" << std::endl;
    }

    // 查询数据
    const char* querySQL = "SELECT * FROM Users;";
    rc = sqlite3_exec(db, querySQL, callback, nullptr, &errMsg);
    if (rc != SQLITE_OK) {
        std::cerr << "查询数据失败: " << errMsg << std::endl;
        sqlite3_free(errMsg);
    }
    else {
        std::cout << "数据查询成功!" << std::endl;
    }

    // 关闭数据库
    sqlite3_close(db);
    std::cout << "数据库已关闭。" << std::endl;

    return 0;
}


如果提示确实dll,则需要:



总结

在 VS2022 中使用 SQLite3 是实现轻量级数据库存储的高效解决方案。通过配置 SQLite3 库、连接数据库和编写 SQL 操作代码,可以快速搭建起基于 SQLite3 的数据管理功能。对于嵌入式系统、桌面应用和小型项目,SQLite3 是一个理想的选择。然而,在使用过程中,需要注意事务处理和多线程访问等细节,以确保数据一致性和安全性。通过掌握这些知识,开发者能够更好地利用 SQLite3 和 VS2022 构建高质量的应用程序。

相关推荐
恋红尘11 分钟前
Redis面试八股
数据库·redis·面试
少许极端13 分钟前
算法奇妙屋(七)-字符串操作
java·开发语言·数据结构·算法·字符串操作
懒羊羊不懒@16 分钟前
Java基础语法—字面量、变量详解、存储数据原理
java·开发语言
小龙报43 分钟前
《算法通关指南---C++编程篇(2)》
c语言·开发语言·数据结构·c++·程序人生·算法·学习方法
古一|1 小时前
Vue3中ref与reactive实战指南:使用场景与代码示例
开发语言·javascript·ecmascript
直有两条腿1 小时前
【数据迁移】HBase Bulkload批量加载原理
大数据·数据库·hbase
宠友信息1 小时前
java微服务驱动的社区平台:友猫社区的功能模块与实现逻辑
java·开发语言·微服务
驰羽1 小时前
[GO]golang接口入门:从一个简单示例看懂接口的多态与实现
开发语言·后端·golang
言之。1 小时前
ClickHouse 数据更新策略深度解析:突变操作与最佳实践
服务器·数据库·clickhouse
ii_best2 小时前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器