1
我是phonegap android應用程序的新手。 (對不起,我的英文很差。)只在安裝時創建數據庫在phonegap android應用程序
我想創建一個簡單的應用程序,它有一個搜索頁面來填充用戶的詳細信息。我正在使用Web服務來獲取用戶的關係詳細信息。在一個字段上,我想從數據庫中搜索某種類型的靜態代碼。我們決定將它們存儲在本地數據庫而不是服務器中,這樣搜索過程就會很快。我有一些問題來創建數據庫。我只想在應用程序安裝時創建一個時間數據庫。 我用下面的代碼。
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(populateDB, errorCB, successCB);
}
function populateDB(tx) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
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) {
// console.log("Returned rows = " + results.rows.length);
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);
}
// this will be true since it was a select statement and so rowsAffected was 0
if (!results.rowsAffected) {
console.log('No rows affected!');
return false;
}
}
// 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", "Cordova Demo", 200000);
db.transaction(queryDB, errorCB);
}
所有數據都在mySQL數據庫的服務器上。我想在安裝在設備上時將它們存儲在應用程序的本地數據庫中的演示表中。
我下面problems-
- 數據庫是每次覆蓋演示表中的行,當它在設備上運行。
- 演示表在MySQL數據庫中大約有15000行。我可以採取一個MySQL數據庫表備份,但如何在應用程序數據庫中恢復。
- 我可以調用web服務來存儲安裝時的所有數據。
- 同樣的問題,如果我使用localStorage。