码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Clion C项目集成sqlite、IDE插件连接与C代码连接基本操作


    文章目录

    • 1.了解sqlite
    • 2. [官网下载sqlite](https://www.sqlite.org/download.html),并集成到C项目
    • 3.使用Clion的自带的DB插件连接sqllite进行操作
    • 4. C代码直接访问DB,更多知识参考[菜鸟教程-sqlite](https://www.runoob.com/sqlite/sqlite-tutorial.html)

    1.了解sqlite

    sqlite是一个比较像h2的内存数据库,该有的基本功能都有,它是C实现的,比较适合C项目。支持事务,支持异步写,支持大多数SQL的轻量级DB,适合DB与应用程序同物理机、数据量不是很大、并发写不是很多的场景
    在这里插入图片描述

    2. 官网下载sqlite,并集成到C项目

    这里集成到C项目使用该数据库,故选择sqlite-amalgamation-xx版本号.zip。解压将里面的C源文件放到项目根下新建的db目录中,并修改CMakeLists.txt ,其中xx为项目名

    在这里插入图片描述

    3.使用Clion的自带的DB插件连接sqllite进行操作

    在这里插入图片描述

    注意

    • 这里修改一下Flie为指向项目根目录/db/xxdb.sqllite ,xxdb.sqllite可以不存在,之后首次连接后就会在此目录自动创建该数据库文件
    • 首次连接时需要配置数据库驱动,点击上图页面的“Download missing driver files” ,会从github下载一个sqllite-jdbc-3.39.2.0.jar的驱动文件。如果自动安装有网络问题,可以手动去github的sqllite-jdbc驱动下载 然后参考下图配置该驱动文件即可
      在这里插入图片描述
    • 图像界面上创建表,如果不显示可能可能是"manage shown schemas"隐藏显示了
      在这里插入图片描述在这里插入图片描述

    4. C代码直接访问DB,更多知识参考菜鸟教程-sqlite

    #include 
    #include "db/sqlite3.h"
    
    static int callback(void *data, int argc, char **argv, char **azColName) {
        int i;
        fprintf(stderr, "%s: ", (const char *) data);
        for (i = 0; i < argc; i++) {
            printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
        }
        printf("\n");
        return 0;
    }
    
    
    int main() {
        sqlite3 *db;
        char *zErrMsg = 0;
        int rc;
        char *sql;
        const char *data = "Callback function called";
    
        // 使用sqlite官网下载文件中的sqlite3.c里定义的函数连接访问数据库“根目录/db/xxdb.sqllite”
        rc = sqlite3_open("C:\\Users\\Administrator\\CLionProjects\\xx\\db\\xxdb.sqlite", &db);
        if (rc) {
            fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        } else {
            fprintf(stderr, "Opened database successfully\n");
        }
    
        /* Create SQL statement */
        sql = "SELECT * from test1";
    
        /* Execute SQL statement */
        rc = sqlite3_exec(db, sql, callback, (void *) data, &zErrMsg);
        if (rc != SQLITE_OK) {
            fprintf(stderr, "SQL error: %s\n", zErrMsg);
            sqlite3_free(zErrMsg);
        } else {
            fprintf(stdout, "Operation done successfully\n");
        }
        sqlite3_close(db);
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    CUDA 学习记录
    How to capture Microsoft logs IE Activex issue
    基于单片机的养殖场温度控制系统设计
    elasticsearch8.2集群部署
    【数据结构笔记08】数据结构之数组和矩阵的压缩存储(对称矩阵、三角矩阵、对角矩阵、稀疏矩阵)
    Eureka注册中心
    自适应滤波器更新算法-EP3
    Pytorch框架学习记录1——Dataset类代码实战
    leetcode386. 字典序排数(java)
    第二章:Pythonocc官方demo 案例47(NURBS曲面转换)
  • 原文地址:https://blog.csdn.net/qq_39506978/article/details/126909671
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号