繁体   English   中英

使用单个查询将多个记录插入到WebSQL表中,对象数组中的数据

[英]Inserting multiple records into a webSQL table using single query, data from array of objects

目前,我正在从服务器提取JSON并将其放入webSQL数据库后,循环执行INSERT INTO查询。

尽管这可行,但我正在为每条记录执行一个SQL事务,但这似乎效率很低,尤其是在移动设备上。

假设我有一个与每一行所需的值相对应的对象数组,如何在没有循环的情况下做到这一点? 还是简单地循环遍历会更好?

大致来说,我有以下格式的数组:

[{"Timestamp": 323343553,
  "ID": 1,
  "Value1": "string"
  "Value2": 322}, ... more objects
]

正如Cl所言,您可以按以下方式将insert SQL命令循环到一个事务中。

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);

db.transaction(function (tx) {
    tx.executeSql('CREATE TABLE user (id INTEGER PRIMARY KEY AUTOINCREMENT,name)');
});

var userArray = [{"name": "bob"}, {  "name": "lee"}];

db.transaction(function (tx) {
    for (var i = 0; i <userArray.length; i++)
    {
        tx.executeSql("insert into user(name) values(?)",  [userArray[i].name],successCallBack,errorCallBack);

    }
});


function successCallBack(){
  console.log("inserted corrrectly !!");
}
function errorCallBack(tx,error){
   if (query.indexOf('insert into') === -1)
                alert("Error : " + error.message + " in " + query);
  console.log(error.message + "in" + tx);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM