Android数据库操作之--批量插入

来源:互联网 发布:手机淘宝联盟链接转换 编辑:程序博客网 时间:2024/06/05 00:45

Android批量插入数据的方法

创建表 animal

String sqlCreateTable = "create table animal (id Integer primary key autoincrement, age Integer)";

1单条数据插入

SQLiteDataBase.insert(tableName, null, contentValues)

效率最低

/** * 适用db.insert(taleName,null, contentValues) 批量插入数据 * @param paramListData */public void insertBatchDataByinsert(List<Integer> paramListData) {SQLiteDatabase db = localDbOpenHelper.getWritableDatabase();db.beginTransaction();for (Integer line: paramListData) {ContentValues values = new ContentValues();values.put("age", line);db.insert(table, null, values);}db.setTransactionSuccessful();db.endTransaction();db.close();}


2 批量插入数据

SQLiteData.execSQL(sql)  

效率较高

/** * db.execSQL(sql) 批量插入数据 */public void insertBatchDataByexecSQL(List<Integer> paramList) {SQLiteDatabase db = localDbOpenHelper.getWritableDatabase();db.beginTransaction();for (Integer line: paramList) {db.execSQL("insert into animal(age) values("+ line +")");}db.setTransactionSuccessful();db.endTransaction();db.close();}


3 使用SQLiteStatement 批量插入

效率最快

/** * 适用SQLiteStatement 批量插入数据 * @param paramList */public void insertBatchDataByStatement(List<Integer> paramList) {SQLiteDatabase db = localDbOpenHelper.getWritableDatabase();String sql = "insert into animal(age) values(?)";SQLiteStatement sstatement = db.compileStatement(sql);db.beginTransaction();for(Integer line : paramList) {sstatement.bindLong(1, line);sstatement.executeInsert();}db.setTransactionSuccessful();db.endTransaction();db.close();}


插入一万条数据耗时







0 0
原创粉丝点击