ver uso registro myactivity historial google buscado borrar aplicaciones activity actividad android ormlite

android - uso - ¿Cómo borrar un registro de ORMLITE?



registro de actividad android (5)

Para guardar la creación de una consulta, puede hacer una selección para encontrar el ID y luego eliminar por ID. Esto será sencillo si ya tiene configurada la consulta de selección para esta tabla.

Necesito eliminar un registro de la base de datos ORMLite. Puedo eliminar un registro por ID utilizando lo siguiente

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

pero, ¿qué sucede si tengo que eliminar un registro de la misma tabla, no por ID, sino por nombre o cualquier otro campo?

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

¿Qué consulta debo escribir usando el constructor de consultas para eliminar un registro donde nombre = nombre y mealtype = decir (almuerzo)

He intentado algo como esto en mi clase databasehelper

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


Se puede hacer así también.

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


Si está utilizando Kotlin, tendrá que hacer algo como esto en su lugar, ya que la inferencia de tipos no está funcionando correctamente para la sintaxis fluida:

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


Si ya tiene una instancia del objeto (o lista de objetos) que desea eliminar, simplemente haga lo siguiente:

//Get helper DatabaseHelper helper = OpenHelperManager.getHelper(App.getContext(), DatabaseHelper.class); // delete ''em ! helper.getDao(YourObject.class).delete(yourObjectInstance);

Si no tienes la instancia para eliminar o quieres hacerlo de manera SQL (!):

//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", "FIELD_VALUE"); deleteBuilder.delete();

Si necesita una lógica de Where más complicada, use deleteBuilder.where().or() o deleteBuilder.where().and() para agregar más restricciones.


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

Actualizar:

Por ejemplo :

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

¡Buena suerte!