Clion C项目集成sqlite、IDE插件连接与C代码连接基本操作

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 <stdio.h>
#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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值