【发布时间】:2018-05-10 19:48:27
【问题描述】:
我在教程中看到使用 execSQL 从 SQlite 数据库更新数据的代码:
String update = "UPDATE FRUIT SET COLOR=? WHERE ID=?";
myDatabase.execSQL( update, new Object[] {"RED", 7});
Cursor cursor = myDatabase.rawQuery("SELECT * FROM FRUIT;", null);
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor.getColumnIndex("NAME"));
String color = cursor.getString(cursor.getColumnIndex("COLOR"));
Log.i(TAG, "onCreate: Name: " + name + ", color: " + color);
} while (cursor.moveToNext());
}
但是,我在 Android 的官方文档中看到了this:
使用 execSQL 的代码有效,但最好使用 update 或者我仍然可以使用 execSQL,因为它有效?什么是好的练习更好?既然本教程来自可靠来源,为什么他们使用 execSQL?
【问题讨论】:
-
我无法使用 rawQuery/execSQL 在数据库事务中执行更新/插入/删除。我总是不得不使用方便的方法。
标签: android database sql-update android-sqlite sp-executesql