我正在尝试将一些数据存储在使用phonegap创建的数据库中,如下所示
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中
该怎么做呢?
发布于 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中讲述了为什么。
发布于 2012-02-13 17:48:35
请参阅:http://developer.android.com/guide/topics/data/data-storage.html#db和http://developer.android.com/guide/developing/tools/adb.html#sqlite在创建数据库时,您可以指定数据库名称,并且将在/ .db /data/package name/databases/中创建一个带有数据的文件名。
很抱歉,您提供的代码没有显示数据库是如何创建的。
发布于 2013-04-10 14:44:07
我建议您使用sqlite的LocalStorage实例来实现此目的。您可以在以下位置引用本地存储:http://docs.phonegap.com/en/1.0.0/phonegap_storage_storage.md.html
示例:
localStorage.setItem("ItemName",yourItem);
localStorage.getItem("ItemName");它提供了一种更好的方式来轻松有效地存储和检索数据
https://stackoverflow.com/questions/9258159
复制相似问题