簡體   English   中英

使用來自科爾多瓦服務器的大型json數據將數據插入android sqlite數據庫的最佳方法

[英]best way to insert data into android sqlite database using large json data coming from server using cordova

我是科爾多瓦的新手。 我正在開發一個混合應用程序(Targeting Android OS),其中應要求的數據庫表是根據來自服務器的json數據填充的。

現在我的問題是當json數據較少時,插入速度更快。 現在,我以Gzip格式從服務器發送的JSON數據大小約為40MB,因此該設備能夠更快地下載json數據,但是將數據插入數據庫表中需要花費很多時間,甚至有時它掛了。

有時設備在將數據插入sqlite數據庫時關閉應用程序。 我認為插入操作會占用大量內存,導致應用崩潰。

var tx = window.sqlitePlugin.openDatabase({ name: "database_name.db" });


tx.transaction(function(db) {
    $.each(result[i],function(j,field){
        var insert_gen_code_desc = "insert or replace  into  table-name ( id , pk_code_group , pk_code , description , created_by , created_on , updated_by , updated_on , last_update , status , lastupdate , sl_no, upload_status ) values ("+result[i][j][0]['id']+",'"+result[i][j][0]['pk_code_group']+"','"+result[i][j][0]['pk_code']+"','"+result[i][j][0]['description']+"','"+result[i][j][0]['created_by']+"','"+result[i][j][0]['created_on']+"','"+result[i][j][0]['updated_by']+"','"+result[i][j][0]['updated_on']+"',"+result[i][j][0]['last_update']+",'"+result[i][j][0]['STATUS']+"','"+result[i][j][0]['lastupdate']+"',"+result[i][j][0]['sl_no']+",'0')";
db.executeSql(insert_gen_code_desc);
});
},errorCallback, successCallback);

有人可以告訴我我在做什么錯,因為在向表中插入大量數據時我的應用程序崩潰了,還是可以建議我用更少的內存(RAM)更快地插入。

注意:我正在使用com.brodysoft.sqlitePlugin插件進行sqlite數據庫操作。

這是一個已知的限制。 https://github.com/litehelpers/Cordova-sqlite-enterprise-free上的版本(具有不同的許可方案)可以處理更大的交易。 解決方法是,您可以使用較小的多個事務簡單地存儲數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM