SQLite有C++面向对象的接口吗?

sas*_*alm 3 c++ sqlite

SQLite带有C风格的接口,您需要显式关闭每个资源(没有析构函数).

int rc = sqlite3_open16(databaseFileName, &sqlite->db);
...
sqlite3_close(_sqlite->db);
Run Code Online (Sandbox Code Playgroud)

是否有C++接口或C风格的接口可用的包装器,它会添加析构函数,就像gtkmm是GTK +?就像是:

class SQLiteDb
{
public:
    SQLiteDb() {
        int rc = sqlite3_open16(databaseFileName, &db);
        if(rc != SQLITE_OK){
            std::string errorText = sqlite3_errmsg(db);
            throw std::runtime_error(errorText);
        }
    }
    ~SQLiteDb() {
        sqlite3_close(db);
    }
private:
    sqlite3 *db;
};
Run Code Online (Sandbox Code Playgroud)

ick*_*fay 6

在您选择的搜索引擎上搜索"SQLite RAII"会找到此库.