2012-08-24 21 views
24

Ich brauche einen Datensatz aus ORMLite Datenbank löschen ich einen Datensatz von ID lösche, wie untenWie lösche ich einen Datensatz von ORMLITE?

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

verwenden, aber was ist, wenn ich einen Datensatz aus derselben Tabelle nicht von id löschen, sondern nach dem Namen oder jedem anderen Bereich ich möchte so etwas wie

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

welche Abfrage sollte ich Querybuilder schreiben mit einem Datensatz zu löschen, wo name = Name und mealtype = sagen (Mittagessen)

ich habe versucht, so etwas wie dies in meinem databaseh elper Klasse

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) { 
     ... 
    } 
} 

Antwort

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

Update:

Zum Beispiel:

//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(); 

Viel Glück!

+0

@llya Demidove können Sie bitte die Implementation wie es sein sollte –

+0

ist es klar für Sie?) –

0

Aufbau einer Abfrage zu speichern, können Sie ein wählen Sie die ID zu finden, gehen Sie dann eine Lösch von ID. Thsi wird einfach sein, wenn Sie bereits die Select-Abfrage für diese Tabelle eingerichtet haben.

+0

Ich habe keine Auswahl Abfrage für diese Tabelle wieder zuerst ich muss Select Abfrage erstellen ist es nicht –

0

Es kann auch, wie die

DatabaseHelper.getInstance().getDao(YourObject.class).delete(yourObjectInstance); 
0

erfolgen Wenn Sie Kotlin verwenden, müssen Sie stattdessen so etwas tun, da die Typinferenz zur Zeit nicht richtig für die fließende Syntax arbeiten:

val deleteBuilder = dao.deleteBuilder() 
      val where = deleteBuilder.where().eq("address", address) 
      deleteBuilder.setWhere(where) 
      deleteBuilder.delete() 
Verwandte Themen