SQLite3

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;
};
06-01
SQLite是一种轻型、高效、自包含的SQL数据库引擎,支持大部分SQL标准,包括事务和触发器等高级特性。SQLite不需要独立的服务器进程或操作系统进程,它直接读取或写入普通的磁盘文件,因此非常适合于嵌入式设备、移动设备以及小型应用程序。 在Python中,可以使用标准库中的`sqlite3`模块来连接SQLite数据库,并执行SQL语句。`sqlite3`模块提供了一组API,可以创建数据库、创建表、插入数据、查询数据等操作。 下面是一个简单的示例代码,演示了如何使用`sqlite3`模块连接SQLite数据库,并创建一个表: ```python import sqlite3 # 连接数据库 conn = sqlite3.connect('test.db') # 创建一个表 conn.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL ); ''') # 关闭数据库连接 conn.close() ``` 在上面的示例中,`sqlite3.connect()`函数用于连接SQLite数据库,如果不存在则会自动创建。`conn.execute()`方法用于执行SQL语句,创建一个名为`users`的表,包含`id`、`name`和`age`三个字段。`PRIMARY KEY`、`AUTOINCREMENT`、`NOT NULL`等关键字用于设置字段的属性。最后,使用`conn.close()`方法关闭数据库连接。 除了创建表以外,`sqlite3`模块还提供了许多其他的API,例如插入数据、查询数据、更新数据、删除数据等操作。可以通过调用`conn.execute()`方法并传入对应的SQL语句来执行这些操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值