Write your own wrapper.
Honestly you don't need a wrapper, just open the Db, query on it, handle your result, close the Db. That's it.
This is my code snippet as an example
void QuestionManager::LoadQuestion(int questionId)
{
string dbPath = "my/path/question.sqlite";
if(sqlite3_open(dbPath.c_str(),&pDB) == SQLITE_OK)
{
LOG("Open data base success");
ostringstream ss;
ss << "Select * from question1 where id=" << questionId;
string sqlCmd = ss.str();
sqlite3_stmt *stmt;
if(sqlite3_prepare_v2(pDB, sqlCmd.c_str(), -1, &stmt, NULL) == SQLITE_OK)
{
while (sqlite3_step(stmt) == SQLITE_ROW)
{
Question q = Question();
q.question = (const char*)sqlite3_column_text(stmt, 1);
q.caseA = (const char*)sqlite3_column_text(stmt, 2);
q.caseB = (const char*)sqlite3_column_text(stmt, 3);
q.caseC = (const char*)sqlite3_column_text(stmt, 4);
q.caseD = (const char*)sqlite3_column_text(stmt, 5);
q.result = (const char*)sqlite3_column_text(stmt, 6);
arrQuestion[i] = q;
}
}
sqlite3_close(pDB);
}
else
{
LOG("cannot open DB %s", dbPath.c_str());
}
}