android - 首次加载应用程序时,将数据插入 phonegap 中的 sqlite 数据库

标签 android sqlite cordova

我有一个用 phonegap 编写的应用程序,我希望我的应用程序第一次加载时,表和数据创建并插入数据库,但是每次运行我的应用程序时,再次插入数据,加载时间增加,如何检查如果表已创建,请不要再次插入数据?

    document.addEventListener("deviceready", onDeviceReady, false);


    var dbShell ;

     function onDeviceReady() {

     dbShell = window.openDatabase("BaharNarenj", "1.0", "BaharNarenj", 2000000);

    dbShell.transaction(setupTable,dbErrorHandler,getEntries);

    }

function setupTable(tx){

    tx.executeSql("CREATE TABLE IF NOT EXISTS amaken(id INTEGER,title,des,px,py)");     

tx.executeSql('insert into amaken(id,title,des,px,py) values(2,"test","dec","36.566185","55.059502")');     

 tx.executeSql('insert into amaken(id,title,des,px,py) values(4,"test5","dec5","36.566185","55.059502")');  
}



function dbErrorHandler(err){
 alert("DB Error: "+err.message + "\nCode="+err.code);
}


function getEntries() {
alert("done");
}

最佳答案

您可以在本地存储中设置一个标志(如以下代码中的 XApp1.0),并在后续运行应用程序时检查该标志的值。希望这会帮助你。

function onDeviceReady() {
    var firstrun = window.localStorage.getItem("XApp1.0"); 
    if ( firstrun == null ) {
        window.localStorage.setItem("XApp1.0", "1"); 
        var db = window.openDatabase("XApp", "1.0", "XApp", 200000);
        db.transaction(populateDB, errorCB, successCB);
    }
    else {
        // Db Alredy Exists
        var db = window.openDatabase("XApp", "1.0", "XApp", 200000);
        db.transaction(queryDB, errorCB);
    }
}

关于android - 首次加载应用程序时,将数据插入 phonegap 中的 sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17186736/

相关文章:

android - 需要在 android 应用程序中实现计时器(具有可变时间间隔的性质)

android - 数据库同步替代方案

android - 在 Android 应用程序中设置 zxing 2.0 条码扫描器

r - 如何使用RSQLite将数据表转换成SQLite表?

python - 交替的 SQL 查询

android - Ionic 3 在运行 ionic cordova add platform android 后,我的 ionic-native/file,filepath,transfer 发生错误

ios - iOS 上的 Meteor 1.8 Cordova 应用程序中的热代码推送中断

android - 对 ListView 项目实现 OnClickListener

android - GridView 上的动画在滚动时变得困惑

android - 如何以编程方式启动用户选择的 Daydream?