【AndroidでSQLiteを制する】SQLiteDatabase#deleteを使用してデータを削除する
SQLデータベース内のテーブルのデータを削除します。
今回はSQLiteDatabaseに定義されているデリートを行うコンビニエンスメソッドを使用します。
SQLiteDatabase#deleteを使用する
SQLiteDatabase#updateはテーブルのデータを削除するコンビニエンスメソッドです。SQLiteDatabase#updateには3つの引数があります。
| String table | データベース内のテーブル名を指定します。 |
| String whereClause |
WHERE句を指定します。 「[カラム名] = ? AND [カラム名] = ? 」のように条件を設定します。 ?はwhereArgsで指定します。 全行を削除する場合はnullを指定してください。 |
| String[] whereArgs |
String whereClauseで指定した「?」を埋めるための文字列を配列で指定できます。 「?」の数よりも配列の要素数が多い場合は例外が発生します。 WHERE句に「?」が存在しない場合はnullを指定してください。 |
このメソッドを使用してBookDAOにdeleteメソッドを実装します。
今回は指定したidのデータを削除します。
BookDAO
public static int delete(Context context , String id){
LoadToSQLiteMasterSQLiteOpenHelper loadToSQLiteMasterSQLiteOpenHelper = new LoadToSQLiteMasterSQLiteOpenHelper(context);
SQLiteDatabase writableDatabase = loadToSQLiteMasterSQLiteOpenHelper.getWritableDatabase();
int rowId = writableDatabase.delete(LoadToSQLiteMasterContract.Book.TABLE_NAME ,
LoadToSQLiteMasterContract.Book._ID +"= ? " ,
new String[]{id}
);
return rowId;
}
SQLiteActivityにBookDAO#deleteメソッドを使用し、SQLiteActivity#deleteBookを実装します。
private void deleteBook(String id) {
long rowId = BookDAO.delete(getApplicationContext(),id);
Toast.makeText(this, "削除行数:" + rowId , Toast.LENGTH_SHORT).show();
}