当前位置: 首页 > news >正文

SQLite3

文章目录

  • SQLite3 C/C++API介绍
  • SQLite3 C/C++ API 使⽤

SQLite3 C/C++API介绍

C/C++ API是SQLite3数据库的⼀个客⼾端,提供⼀种⽤C/C++操作数据库的⽅法。

在这里插入图片描述

SQLite3 C/C++ API 使⽤

下⾯我们将这⼏个接⼝封装成⼀个类,快速上⼿这⼏个接口

  1. 创建/打开数据库文件
  2. 针对打开的数据库执行操作
    1. 表的操作
    2. 数据的操作
  3. 关闭数据库
#include <iostream>
#include <string>
#include <sqlite3.h>
using namespace std;class SqliteHelper 
{
public:typedef int(*SqliteCallback)(void*,int,char**,char**); //回调函数指针SqliteHelper(const string &dbfile) : _dbfile(dbfile), _handler(nullptr){}bool open(int safe_leve = SQLITE_OPEN_FULLMUTEX) //串行化模式{//int sqlite3_open_v2(const char *filename, sqlite3 **ppDb, int flags, const char *zVfs );int ret = sqlite3_open_v2(_dbfile.c_str(), &_handler, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | safe_leve, nullptr);if (ret != SQLITE_OK) {cout << "创建/打开sqlite数据库失败: ";cout << sqlite3_errmsg(_handler) << endl;return false;}return true;}bool exec(const string &sql, SqliteCallback cb, void *arg) //arg是cb回调函数的参数{//int sqlite3_exec(sqlite3*, char *sql, int (*callback)(void*,int,char**,char**), void* arg, char **err)int ret = sqlite3_exec(_handler, sql.c_str(), cb, arg, nullptr);if (ret != SQLITE_OK) {cout << sql << endl;cout << "执行语句失败: ";cout << sqlite3_errmsg(_handler) << endl;return false;}return true;}void close() {//int sqlite3_close_v2(sqlite3*);if (_handler) sqlite3_close_v2(_handler);}
private:string _dbfile;sqlite3 *_handler;
};
http://www.lryc.cn/news/456075.html

相关文章:

  • 我的创作纪念日一年
  • Docker基本操作命令(一)
  • PGMP-02项目集管理绩效域
  • CAN(Controller Area Network)总线的仲裁机制
  • 计算机毕业设计 | SpringBoot 房屋租赁网 租房买房卖房平台(附源码)
  • OJ在线评测系统 微服务高级 Gateway网关接口路由和聚合文档 引入knife4j库集中查看管理并且调试网关项目
  • 腾讯云上传pushdocker镜像到镜像仓库
  • sqli-labs靶场第二关less-2
  • Ruby XML, XSLT 和 XPath 教程
  • attain和obtain区别
  • ◇【code】PPO: Proximal Policy Optimization
  • Spring Boot 进阶-浅析SpringBoot中如何完成数据校验
  • ◇【论文_20181020 v6】广义优势估计器 (generalized advantage estimator, GAE)
  • JAVA后端项目须知
  • Java设计模式——适配器模式
  • docker compose入门6—如何挂载卷
  • linux 环境下 docker 镜像获取失败, 重新设置docker镜像下载地址
  • 【React】setState 是怎么记住上一个状态值的?
  • linux批量删文件
  • Kubernetes(K8s)的简介
  • 线性查找法 ← Python实现
  • view deign 和 vue2 合并单元格的方法
  • Arduino UNO R3自学笔记16 之 Arduino的定时器介绍及应用
  • 鸟类数据集,鸟数据集,目标检测class:bird,共一类13000+张图片yolo格式(txt)
  • 透明物体的投射和接收阴影
  • NL2SQL商业案例详解:AI智能开放搜索 OpenSearch
  • 【万字长文】Word2Vec计算详解(一)
  • 【EXCEL数据处理】000022 案例 保姆级教程,附多个操作案例。EXCEL邮件合并工具
  • 第十五周:机器学习笔记
  • Highcharts 散点图