首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的数据库通过Phonegap存储在安卓的/data/data/package-name/app_database/file__0/*.db中

我的数据库通过Phonegap存储在安卓的/data/data/package-name/app_database/file__0/*.db中
EN

Stack Overflow用户
提问于 2012-02-13 17:29:05
回答 4查看 2.9K关注 0票数 3

我正在尝试将一些数据存储在使用phonegap创建的数据库中,如下所示

代码语言:javascript
复制
document.addEventListener("deviceready", onDeviceReady, false);

function populateDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}

// Query the database
//
function queryDB(tx) {
tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}

// Query the success callback
//
function querySuccess(tx, results) {
    var len = results.rows.length;
    console.log("DEMO table: " + len + " rows found.");
    for (var i=0; i<len; i++){
        console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " +    results.rows.item(i).data);
   }
}

// Transaction error callback
//
function errorCB(err) {
    console.log("Error processing SQL: "+err.code);
}

// Transaction success callback
//
function successCB() {
    var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
    db.transaction(queryDB, errorCB);
}

// PhoneGap is ready
//
function onDeviceReady() {
    var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000);
    db.transaction(populateDB, errorCB, successCB);
}

但是数据库并未获取created..Instead,而是将其保存在/data/data/package-name/app_database/file__0/00000000000000001.db中

我希望将数据保存在/ data /data/package-name/database/Database.db中

该怎么做呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-13 23:28:17

除非修改PhoneGap源代码,否则不能更改创建数据库的目录。我想更好的问题是,为什么要将数据保存在/ data /data/package-name/database/Database.db中,而不是/data/data/package-name/app_database/file__0/00000000000000001.db?中

Java :既然我已经更好地理解了这个需求,那么您能够做到这一点的唯一方法就是write a plugin for Android,它将JavaScript端连接到原生Java端。然后,您可以在Java中打开并读取您的服务创建并填充的数据库。

马克·墨菲(CommonsWare)在这部thread中讲述了为什么。

票数 1
EN

Stack Overflow用户

发布于 2012-02-13 17:48:35

请参阅:http://developer.android.com/guide/topics/data/data-storage.html#dbhttp://developer.android.com/guide/developing/tools/adb.html#sqlite在创建数据库时,您可以指定数据库名称,并且将在/ .db /data/package name/databases/中创建一个带有数据的文件名。

很抱歉,您提供的代码没有显示数据库是如何创建的。

票数 0
EN

Stack Overflow用户

发布于 2013-04-10 14:44:07

我建议您使用sqlite的LocalStorage实例来实现此目的。您可以在以下位置引用本地存储:http://docs.phonegap.com/en/1.0.0/phonegap_storage_storage.md.html

示例

代码语言:javascript
复制
localStorage.setItem("ItemName",yourItem);

localStorage.getItem("ItemName");

它提供了一种更好的方式来轻松有效地存储和检索数据

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9258159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档