项目-sqlite类的实现

项目-sqlite类的实现

代码如下:

C++ 复制代码
#ifndef __M_HELPER_H__
#define __M_HELPER_H__
#include <iostream>
#include <string>
#include <vector>
#include <sqlite3.h>
#include "mq_logger.hpp"

namespace xypmq
{
class SqliteHelper
{
    public:
        typedef int(*SqliteCallback)(void*,int ,char**,char**);
        SqliteHelper(const std::string &dbfile):_dbfile(dbfile),_handler(nullptr){}
        bool open(int safe_level=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_level,nullptr);
            if(ret!=SQLITE_OK)
            {
                ELOG("创建/打开sqlite数据库失败: %s", sqlite3_errmsg(_handler));
                return false;
            }
            return true;
        }
        bool exec(const std::string &sql,SqliteCallback cb,void *arg)
        {
            //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)
            {
                ELOG("%s \n语句执行失败: %s", sql.c_str(), sqlite3_errmsg(_handler));
                return false;
            }
            return true;
        }
        void close()
        {
           // int sqlite3_close_v2(sqlite3*)
           if(_handler) sqlite3_close_v2(_handler);
        }
    private:
        std::string _dbfile;
        sqlite3* _handler;
};
#endif
}
相关推荐
失散133 分钟前
分布式专题——25 深入理解网络通信和TCP、IP协议
java·分布式·网络协议·tcp/ip·架构
zz0723202 小时前
Java 集合体系 —— List 篇
java·list·集合体系
-雷阵雨-2 小时前
数据结构——LinkedList和链表
java·开发语言·数据结构·链表·intellij-idea
fly-phantomWing6 小时前
Maven的安装与配置的详细步骤
java·后端·maven·intellij-idea
2401_841495649 小时前
【数据结构】红黑树的基本操作
java·数据结构·c++·python·算法·红黑树·二叉搜索树
学编程的小鬼9 小时前
SpringBoot 自动装配原理剖析
java·spring boot·后端
@@神农10 小时前
maven的概述以及在mac安装配置
java·macos·maven
杜子不疼.10 小时前
【C++】玩转模板:进阶之路
java·开发语言·c++
夜晚中的人海10 小时前
【C++】异常介绍
android·java·c++
Le1Yu11 小时前
2025-9-28学习笔记
java·笔记·学习