最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android批量插入數(shù)據(jù)到SQLite數(shù)據(jù)庫的方法

 更新時間:2017年03月30日 12:03:57   作者:chaoyu168  
這篇文章主要為大家詳細(xì)介紹了Android批量插入數(shù)據(jù)到SQLite數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Android中在sqlite插入數(shù)據(jù)的時候默認(rèn)一條語句就是一個事務(wù),因此如果存在上萬條數(shù)據(jù)插入的話,那就需要執(zhí)行上萬次插入操作,操作速度可想而知。因此在Android中插入數(shù)據(jù)時,使用批量插入的方式可以大大提高插入速度。

有時需要把一些數(shù)據(jù)內(nèi)置到應(yīng)用中,常用的有以下幾種方式:

1、使用db.execSQL(sql)

這里是把要插入的數(shù)據(jù)拼接成可執(zhí)行的sql語句,然后調(diào)用db.execSQL(sql)方法執(zhí)行插入。

public void inertOrUpdateDateBatch(List<String> sqls) { 
SQLiteDatabase db = getWritableDatabase(); 
db.beginTransaction(); 
try { 
for (String sql : sqls) { 
db.execSQL(sql); 
} 
// 設(shè)置事務(wù)標(biāo)志為成功,當(dāng)結(jié)束事務(wù)時就會提交事務(wù) 
db.setTransactionSuccessful(); 
} catch (Exception e) { 
e.printStackTrace(); 
} finally { 
// 結(jié)束事務(wù) 
db.endTransaction(); 
db.close(); 
} 
} 

2、使用db.insert("table_name", null, contentValues)

這里是把要插入的數(shù)據(jù)封裝到ContentValues類中,然后調(diào)用db.insert()方法執(zhí)行插入。

db.beginTransaction(); // 手動設(shè)置開始事務(wù) 
for (ContentValues v : list) { 
db.insert("bus_line_station", null, v); 
} 
db.setTransactionSuccessful(); // 設(shè)置事務(wù)處理成功,不設(shè)置會自動回滾不提交 
db.endTransaction(); // 處理完成 
db.close() 

3、使用InsertHelper類

這個類在API 17中已經(jīng)被廢棄了

InsertHelper ih = new InsertHelper(db, "bus_line_station"); 
db.beginTransaction(); 
final int directColumnIndex = ih.getColumnIndex("direct"); 
final int lineNameColumnIndex = ih.getColumnIndex("line_name"); 
final int snoColumnIndex = ih.getColumnIndex("sno"); 
final int stationNameColumnIndex = ih.getColumnIndex("station_name"); 
try { 
for (Station s : busLines) { 
ih.prepareForInsert(); 
ih.bind(directColumnIndex, s.direct); 
ih.bind(lineNameColumnIndex, s.lineName); 
ih.bind(snoColumnIndex, s.sno); 
ih.bind(stationNameColumnIndex, s.stationName); 
ih.execute(); 
} 
db.setTransactionSuccessful(); 
} finally { 
ih.close(); 
db.endTransaction(); 
db.close(); 
} 

4、使用SQLiteStatement

查看InsertHelper時,官方文檔提示改類已經(jīng)廢棄,請使用SQLiteStatement

String sql = "insert into bus_line_station(direct,line_name,sno,station_name) values(?,?,?,?)"; 
SQLiteStatement stat = db.compileStatement(sql); 
db.beginTransaction(); 
for (Station line : busLines) { 
stat.bindLong(1, line.direct); 
stat.bindString(2, line.lineName); 
stat.bindLong(3, line.sno); 
stat.bindString(4, line.stationName); 
stat.executeInsert(); 
} 
db.setTransactionSuccessful(); 
db.endTransaction(); 
db.close(); 

第三種方法需要的時間最短,鑒于該類已經(jīng)在API17中廢棄,所以第四種方法應(yīng)該是最優(yōu)的方法。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android開發(fā)常用經(jīng)典代碼段集錦

    Android開發(fā)常用經(jīng)典代碼段集錦

    這篇文章主要介紹了Android開發(fā)常用經(jīng)典代碼段,涉及Android開發(fā)過程中針對手機、聯(lián)系人、圖片、存儲卡等的相關(guān)操作技巧,非常簡單實用,需要的朋友可以參考下
    2016-02-02
  • Android本地搜索業(yè)務(wù)優(yōu)化方案

    Android本地搜索業(yè)務(wù)優(yōu)化方案

    這篇文章主要為大家介紹了Android本地搜索業(yè)務(wù)優(yōu)化方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • androidstudio3.0使用butterknife報錯解決的解決方法

    androidstudio3.0使用butterknife報錯解決的解決方法

    這篇文章主要介紹了androidstudio3.0使用butterknife報錯解決的解決方法,非常具有實用價值,需要的朋友可以參考下
    2018-01-01
  • Android AOP注解Annotation詳解(一)

    Android AOP注解Annotation詳解(一)

    這篇文章主要介紹了Android AOP注解Annotation詳細(xì)介紹的相關(guān)資料,Annotation是代碼里的特殊標(biāo)記,這些標(biāo)記可以在編譯、類加載、運行時被讀取,并執(zhí)行相應(yīng)的處理,需要的朋友可以參考下
    2017-03-03
  • Android之AnimationDrawable簡單模擬動態(tài)圖

    Android之AnimationDrawable簡單模擬動態(tài)圖

    這篇文章主要為大家詳細(xì)介紹了Android之AnimationDrawable簡單模擬動態(tài)圖的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • android表格效果之ListView隔行變色實現(xiàn)代碼

    android表格效果之ListView隔行變色實現(xiàn)代碼

    首先繼承SimpleAdapter再使用重載的Adapter來達(dá)到效果,其實主要是需要重載SimpleAdapter,感興趣的朋友可以研究下,希望本文可以幫助到你
    2013-02-02
  • Kotlin面向?qū)ο笾R點講解

    Kotlin面向?qū)ο笾R點講解

    面向?qū)ο缶幊掏ㄟ^對事物的抽象,大大的簡化了程序的開發(fā)難度。我們常用的編程語言:Java、C++、Python都屬于面向?qū)ο缶幊?。Kotlin與java類似,也是一種面向?qū)ο缶幊陶Z言。本文從面向?qū)ο笕齻€基本特征:封裝、繼承、多態(tài),來闡述一下Kotlin中的面向?qū)ο缶幊?/div> 2022-12-12
  • Android?手寫熱修復(fù)dex實例詳解

    Android?手寫熱修復(fù)dex實例詳解

    這篇文章主要為大家介紹了Android?手寫熱修復(fù)dex實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Android 馬賽克(Mosaics)效果

    Android 馬賽克(Mosaics)效果

    這篇文章主要為大家介紹了Android 馬賽克(Mosaics)效果,馬賽克(Mosaics)效果應(yīng)用非常廣泛,想要學(xué)習(xí)的不要錯過本文,可以借鑒參考一下
    2016-01-01
  • 探討Android與iOS,我們將何去何從?

    探討Android與iOS,我們將何去何從?

    本篇文章是對Android與iOS進(jìn)行了詳細(xì)的分析與探討,需要的朋友參考下
    2013-05-05

最新評論

伊春市| 五家渠市| 富平县| 平阴县| 孟连| 汉川市| 冀州市| 余姚市| 文化| 济阳县| 黔江区| 昭觉县| 华阴市| 留坝县| 阿合奇县| 桂东县| 吉首市| 什邡市| 和平县| 德兴市| 汝州市| 安义县| 界首市| 望江县| 江西省| 老河口市| 麟游县| 永胜县| 通化县| 芷江| 武川县| 吉隆县| 襄垣县| 望谟县| 平远县| 五台县| 壤塘县| 樟树市| 涞源县| 那坡县| 林甸县|