【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(); }