gpt4 book ai didi

android - 将 SQLite 添加到 Android NDK 项目

转载 作者:行者123 更新时间:2023-11-30 05:18:33 25 4
gpt4 key购买 nike

我是 android 开发人员,但是 android ndk 的新手,现在我正在尝试通过 android ndk 使用 c++ 编写一个应用程序,所有与数据库的工作也应该使用 c++ 代码完成。我在项目中添加了sqlite(我不确定我是否添加正确):我下载并保存了这四个文件(shell.c、sqlite3.c、sqlite3.h、slite3ext.h)到src/main/cpp/sqlite文件夹。这是我的 CMakeList.txt,我在其中将 sqlite 添加到项目中:

add_library(native-lib

SHARED

src/main/cpp/native-lib.cpp
src/main/cpp/sqlite/sqlite3.c
)

我做对了吗?我如何在代码中使用它(连接到数据库、创建表、插入数据、更新数据...)?

最佳答案

你的项目中需要有这3个文件:sqlite3.c, sqlite3.h, sqlite3ext.h(不确定最后一个)。基本操作(创建数据库、创建表和插入值):

bool createTable() {

/* Open database */
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open(databaseName, &db);
if (rc != SQLITE_OK) {
//Can't open database/
sqlite3_open_v2(DB_FILE, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
}

/* Create SQL statement */
const char *createQuery =
"CREATE TABLE IF NOT EXISTS cities (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);";

/* Execute SQL statement */
rc = sqlite3_exec(db, createQuery, callback, 0, &zErrMsg);

if (rc != SQLITE_OK) {
sqlite3_free(zErrMsg);
return false;
}
sqlite3_close(db);
return true;
}

插入:

bool insertToDb(CityWeather *pCityWeather) {
sqlite3 *db;
char *zErrMsg = 0;
int rc;

/* Open database */
rc = sqlite3_open(databaseName, &db);
if (rc) {
sqlite3_open_v2(DB_FILE, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL);
}

const char *pCityName = pCityWeather->getName().c_str();
char insertQuery[50];
strcpy (insertQuery,"INSERT INTO cities (name) VALUES ('");
strcat (insertQuery, pCityName);
strcat (insertQuery, "');");
puts (insertQuery);

delete pCityWeather;

/* Execute SQL statement */
rc = sqlite3_exec(db, insertQuery, callback, 0, &zErrMsg);
if (rc != SQLITE_OK) {
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return true;
}

关于android - 将 SQLite 添加到 Android NDK 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41650274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com