26

ORMLite データベースからレコードを削除する必要があります。以下のように ID でレコードを削除できます。

@Override
public void Delete(int id) throws SQLException {
    this.dao.deleteById(id);
}

しかし、IDではなく名前またはその他のフィールドで同じテーブルからレコードを削除する必要がある場合は、次のようなものが必要です

public void Deletefromcanteen(String name,MealType mealtype) {
    this.dao.deletebyName(name);
}

名前 = 名前および食事の種類 = 言う (昼食) のレコードを削除するには、querybuilder を使用してどのようなクエリを作成する必要がありますか?

データベースヘルパークラスでこのようなことを試しました

public  void deletefromcanteen(int id, String mealtype) {
    try {
        Dao<CanteenLog, Integer> canteenDao = getCanteen();
        DeleteBuilder<CanteenLog, Integer> deleteBuilder = canteenDao
                .deleteBuilder();
        deleteBuilder.where().eq("user_id", id).and().eq("meal", mealtype);
        canteenDao.delete(deleteBuilder.prepare());
    } catch (Exception e) {
        ...
    }
}
4

5 に答える 5

74
deleteBuilder.where().eq("FIELD_NAME", arg);
deleteBuilder.delete();

アップデート:

例えば ​​:

//Get helper
DatabaseHelper helper = OpenHelperManager.getHelper(App.getContext(), DatabaseHelper.class);

//get dao
Dao dao = helper.getDao(YOUR_CLASS.class);

//delete elements from table in field by arg
DeleteBuilder<CanteenLog, Integer> deleteBuilder = dao.deleteBuilder();
deleteBuilder.where().eq("FIELD_NAME", arg);
deleteBuilder.delete();

幸運を!

于 2012-08-24T11:14:17.210 に答える
0

クエリの作成を保存するには、select を実行して ID を見つけてから、ID で削除します。このテーブルの選択クエリが既に設定されている場合、これは簡単です。

于 2012-08-24T11:11:30.827 に答える
0

そんなこともできる

DatabaseHelper.getInstance().getDao(YourObject.class).delete(yourObjectInstance);
于 2016-04-19T03:57:37.533 に答える
0

Kotlin を使用している場合は、流暢な構文に対して型推論が現在正しく機能していないため、代わりに次のようなことを行う必要があります。

val deleteBuilder = dao.deleteBuilder()
            val where = deleteBuilder.where().eq("address", address)
            deleteBuilder.setWhere(where)
            deleteBuilder.delete()
于 2018-02-12T21:54:39.883 に答える