VSCode配置之C++ & SQLite3极简配置方案

这篇具有很好参考价值的文章主要介绍了VSCode配置之C++ & SQLite3极简配置方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 背景
    最近在学习《深入应用C++11: 代码优化与工程级应用》,其中第13章说到SQLite库,查询网上诸多教程,发现比较容易出现bug且配置较为麻烦,故记录此次简化版方案,以供参考。

  2. 软件环境
    SQLite 3.42.0 版本(仅下载Source code即可)
    VSCode+CMake+SQLite Viewer
    VSCode配置之C++ & SQLite3极简配置方案,C++,VSCode,vscode,c++,sqlite

  3. VSCode + SQLite文件目录
    VSCode配置之C++ & SQLite3极简配置方案,C++,VSCode,vscode,c++,sqlite
    (注:仅需左侧红色框内容,其余均为编译生成结果)

  4. 测试代码文章来源地址https://www.toymoban.com/news/detail-621986.html

#include<iostream>
#include<string>
#include"sqlite3.h"

using namespace std;

bool test_sqlite() {
  sqlite3* db_handle = nullptr;
    int result = sqlite3_open("test.db", &db_handle);
    if(result != SQLITE_OK) {
        sqlite3_close(db_handle);
        return false;
    }

    // create table
    const char* sql_create = "CREATE TABLE if not exists personTable(ID INTEGER NOT NULL, Name Text, Address Text);";
    result = sqlite3_exec(db_handle, sql_create, nullptr, nullptr, nullptr);

    // insert data
    // create stmt
    sqlite3_stmt* stmt = nullptr;
    const char* sql_insert = "INSERT INTO personTable(ID, Name, Address) VALUES(?, ?, ?);";
    sqlite3_prepare_v2(db_handle, sql_insert, strlen(sql_insert), &stmt, nullptr);
    
    // update data
    int id = 1;
    const char* name = "Sqlite3";
    const char* address = "Database";
    sqlite3_bind_int(stmt, 1, id);
    sqlite3_bind_text(stmt, 2, name, strlen(name), SQLITE_TRANSIENT);
    sqlite3_bind_text(stmt, 3, address, strlen(address), SQLITE_TRANSIENT);
    sqlite3_step(stmt);
    result = sqlite3_exec(db_handle, sql_insert, nullptr, nullptr, nullptr);

    // free stmt
    sqlite3_finalize(stmt);

    // close sqlite
    sqlite3_close(db_handle);
    return result = SQLITE_OK;
}

int main() {
    cout << test_sqlite() << endl;
    return 0;
}
  1. 外层CMakeLists.txt配置
cmake_minimum_required (VERSION 3.0)

PROJECT(sqlite3_demo)

set(CMAKE_BUILD_TYPE Release)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
include_directories(${PROJECT_SOURCE_DIR}/include)
link_directories(${PROJECT_SOURCE_DIR}/lib)
add_subdirectory(${PROJECT_SOURCE_DIR}/src)

  1. 内层CMakeLists.txt配置
# cmake needs this line
SET(CMAKE_BUILD_TYPE "Release")

add_library(sqlite3 ../include/sqlite3)
add_executable(main main.cpp)
target_link_libraries(main sqlite3)
  1. 小结
    1)理解了CMake的编译原理就不在需要诸如sqlite3.def,sqlite3.exe文件,通过手动编译的方式,自动生成sqlite3.lib,更加实用便捷,且不需要调用vs studio的lib.exe等命令(需要管理员权限);
    2)SQLite提供了丰富的API,因此手动编译源码,方便函数的查询和源码的理解;
    3)SQLite的数据处理pipeline较为繁琐,接下来将尝试书中方法,进行二次封装简化。

到了这里,关于VSCode配置之C++ & SQLite3极简配置方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python数据库模块(sqlite3,SQLite3)

    创建数据库:在控制台sqlite3 name sqlite3.connect(database [,timeout ,other optional arguments]) 打开数据库;如果指数据库存在则返回一个连接对象,如果不存在则会创建一个数据库; connection.cursor() 创建一个cursor; cursor.execute(sql) 执行一个sql语句,该语句可以被参数化; connection.execut

    2024年03月19日
    浏览(56)
  • 【Sqlite3】maraidb和sqlite3部分命令操作区别

    maraidb和sqlite3部分命令操作区别记录 在实现我的视频点播系统项目时,我尝试封装了两种数据库的调用逻辑 mysql(maraidb) sqlite3 这里封装sqlite3的原因是,sqlite3主要针对的就是 嵌入式 数据库,其性能可能不如mysql,但是就好在可以 带着走 。安装也很方便,内存占用相对于

    2024年02月09日
    浏览(54)
  • 【sqlite3】sqlite3在linux下使用sqlitebrowser工具实现数据可视化

    1. ### install sqlitebrowser 安装指令 通过工具打开数据库 打开效果

    2024年02月01日
    浏览(43)
  • 02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

    目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 (1)安装SQLite3软件 sudo apt-get install sqlite3 (2)安装库文件 sudo apt-get install libsqlite3-dev 安装成功后输入sqlite3查看 (3)安装sqlite3可

    2024年02月11日
    浏览(71)
  • SQLite3快速入门:SQLite 是什么?如何用好 TA?

    SQLite 是一个开源 SQL 数据库引擎 ,2021年也迎来了第三个大版本,作者计划即日起创建《SQLite

    2023年04月18日
    浏览(42)
  • sqlite3 插入数据

    最近有项目在用sqlite3,这个嵌入式数据库,不是很熟练,连个插入数据的语句都得百度哈哈。 记录下,加深记忆,给同样小白的人看的,大牛没必要在这耽误时间。 我的需求是; 有个edgemgmt3.db的文件,需要插入条数据。 1.进入sqlite终端 进入SQLite3命令行工具。在终端中输入

    2024年02月16日
    浏览(41)
  • sqlite3交叉编译

    1、交叉编译sqllite3可以先从官网下载最新最新的源码进行编译。sqlite3下载sqlite3有两种版本的源代码,sqlite-amalgamation-3420000.zip这种是将所有的操作放到sqlite3中进行使用的。虽然官方推荐使用这种方法。但是对于嵌入式移植还是使用sqlite-autoconf-3420000.tar.gz自动配置编译成so库来

    2024年02月13日
    浏览(45)
  • sqlite3 加密访问

    1.1 sqlcipher 是一个数据库加密的开源库 sqlcipher开源地址 我这边是使用的docker镜像, 镜像地址 : https://hub.docker.com/r/pallocchi/sqlcipher 加密格式 执行案例 密码是test, 在当前目录下执行,当前目录有my.db 未加密的库 1.2 验证加密库 在cli中输入 如果能正常显示你的表格说明加密问题

    2024年02月10日
    浏览(35)
  • SQLite3基础用法

    打开数据库 使用命令行工具或SQLite客户端工具打开一个SQLite数据库文件,如: sqlite3 mydatabase.db 如果文件不存在,则会自动创建一个新的数据库文件。 创建表格 使用CREATE TABLE命令创建一个新的表格,例如: CREATE TABLE users ( id INTEGER PRIMARY KEY, name TEXT, age INTEGER ); 上述语句创建

    2024年02月16日
    浏览(30)
  • SQLITE3 函数接口

    sqlite3 接口的核心元素: 两大对象,八大函数; 其中两个对象指的是: sqlite3 数据库连接对象         数据库的连接句柄(数据库的文件描述符)  代表你打开的那个 sqlite3 的数据库文件,后序对数据库的操作都需要用到这个对象 sqlite3_stmt SQL 语句对象         关系型数据库

    2024年02月06日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包