JPM*_*JPM 2 sqlite android database-update bulkupdate
我一直在这个网站上看一段时间,但没有找到答案.我正在尝试对我知道已经在表中的数据进行批量更新.当某个条件返回行ID时,我需要设置一列.这是单一方法,但我想提高效率,并将其作为批量处理.我们的数据库不在Provider中,因此我只使用Helper类.
public void markUnavailable(int myId) {
SQLiteDatabase db = this.getWritableDatabase();
String sql = "UPDATE " + MYTABLE + " SET " + Col.IS_AVAILABLE + "= 0"+ " WHERE " + Col.MY_ID + "=" + myId;
db.execSQL(sql);
db.close();
}
Run Code Online (Sandbox Code Playgroud)
我想传入一组myIds来进行批量更新.我无法执行Insert或Replace语句,因为我无法访问所有列数据,并且由于代码更改太多而不希望通过它.
public void markUnavailable(int[] myId) {
// ????
/// need some way to loop through and update in bulk
}
Run Code Online (Sandbox Code Playgroud)
我不是Android开发人员,但根据良好的数据库实践,您应该:
public void markUnavailable(int[] myId) {
SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
SQLiteStatement upd=db.compileStatement("UPDATE "+MYTABLE+" SET "+Col.IS_AVAILABLE+"=0 WHERE "+Col.MY_ID+"=?";
for (int i = 0; i < myId.length; i++) {
upd.bindLong(1, myId[i]);
upd.execute();
}
db.endTransaction();
}
Run Code Online (Sandbox Code Playgroud)
Android SQLiteDatabase.update在这种情况下会非常有用,但String [] whereArgs不会很好地处理你的问题int[] myId.
| 归档时间: |
|
| 查看次数: |
4901 次 |
| 最近记录: |