如何把批量数据导入到android 的 sqlite 数据库

如何把批量数据导入到android 的 sqlite 数据库,第1张

1、使用db.execSQL(sql)

这里是把要插入的数据拼接成可执行的sql语句,然后调用db.execSQL(sql)方法执行插入。

public void inertOrUpdateDateBatch(List<String>sqls) {

SQLiteDatabase db = getWritableDatabase()

db.beginTransaction()

try {

for (String sql : sqls) {

db.execSQL(sql)

}

// 设置事务标志为成功,当结束事务时就会提交事务

db.setTransactionSuccessful()

} catch (Exception e) {

e.printStackTrace()

} finally {

// 结束事务

db.endTransaction()

db.close()

}

}

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

这里是把要插入的数据封装到ContentValues类中,然后调用db.insert()方法执行插入。

db.beginTransaction()// 手动设置开始事务

for (ContentValues v : list) {

db.insert("bus_line_station", null, v)

}

db.setTransactionSuccessful()// 设置事务处理成功,不设置会自动回滚不提交

db.endTransaction()// 处理完成

db.close()

3、使用InsertHelper类

这个类在API 17中已经被废弃了

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时,官方文档提示改类已经废弃,请使用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()

与Android中的数据库创建相似,使用OrmLite创建数据库需要我们创建一个SqlOpenHelper继承OrmLiteSqliteOpenHelper,在OrmLiteSqliteOpenHelper也有两个重要方法,分别是onCreate和onUpgrade,负责数据库创建以及升级时的 *** 作 01.public class My...

与Android中的数据库创建相似,使用OrmLite创建数据库需要我们创建一个SqlOpenHelper继承OrmLiteSqliteOpenHelper,在OrmLiteSqliteOpenHelper也有两个重要方法,分别是onCreate和onUpgrade,负责数据库创建以及升级时的 *** 作 01.public class My...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11412496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存