【linux】【c/cpp】【sqlite】sqlite库的使用
目前,几乎所有版本的 Linux 操作系统都附带 SQLite。所以,只要使用下面的命令来检查您的机器上是否已经安装了 SQLite。
$ sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
sqlite3 安装:
如果没有看到上面的结果,那么就意味着没有在 Linux 机器上安装 SQLite。因此,让我们按照下面的步骤安装 SQLite
- 请访问 SQLite 下载页面,从源代码区下载 sqlite-autoconf-*.tar.gz。
$ tar xvzf sqlite-autoconf-3071502.tar.gz
$ cd sqlite-autoconf-3071502
$ ./configure --prefix=/usr/local
$ make
$ make install
使用:
#include <memory>
#include "sqlite3.h"
class SqliteEngine {
public:
SqliteEngine() {}
virtual ~SqliteEngine() { Close(); }
bool Init(const std::string &db_url){
sqlite_url_ = db_url;
if (sqlite3_open_v2(sqlite_url_.c_str(), &db_,
SQLITE_OPEN_READWRITE | SQLITE_OPEN_NOMUTEX |
SQLITE_OPEN_SHAREDCACHE,
NULL) != SQLITE_OK) {
std::cout << sqlite3_errmsg(db_);
return false;
};
return true;
}
bool GetAllData(const std::string &db_coll) {
sqlite3_stmt *stmt = NULL;
std::string sql("select * from " + db_coll);
int result = sqlite3_prepare_v2(db_, sql.c_str(), -1, &stmt, NULL);
if (result == SQLITE_OK) {
while (sqlite3_step(stmt) == SQLITE_ROW) {
std::string info1 = (const char *)sqlite3_column_text(stmt, 0); // 第一列
std::string info2 = (const char *)sqlite3_column_text(stmt, 1); // 第二列
}
}
sqlite3_finalize(stmt);
return true;
}
private:
void Close(){
if (db_) {
sqlite3_close(db_);
db_ = nullptr;
}
}
private:
sqlite3 *db_ = nullptr;
std::string sqlite_url_;
};