2012-06-14 10 views
5

Tengo el siguiente objeto de tabla de base de datos:Actualizar todas las columnas en la tabla de base de datos ormlite en Android

public class Goal { 
    @DatabaseField(generatedId = true) 
    private int id; 
    @DatabaseField 
    private String goal_title; 
    @DatabaseField 
    private String goal_desc; 
    @DatabaseField 
    private String goal_why; 
    ... 
} 

he añadido algunas filas a esta tabla y ahora quiero escribir una consulta para actualizar todas las columnas de una fila en esta tabla. He visto documentación de ORM y no pude tener una idea de cómo escribir esta consulta. Por favor, ayúdame a escribir esta consulta.

Respuesta

17

Creo que necesitas RTFM. He pasado mucho tiempo en la documentación ORMLite y creo que es covers the UpdateBuilder bastante bien. No dude en hacer preguntas más específicas y puedo agregar más detalles si no.

citar los documentos:

El DAO también se puede utilizar para construir actualización personalizada y DELETE. Las instrucciones de actualización se utilizan para cambiar ciertos campos en filas de la tabla que coinciden con el patrón WHERE o actualizar todas las filas si no es where(). Las instrucciones de eliminación se utilizan para eliminar filas de la tabla que coincidan con el patrón WHERE, o eliminar todas las filas si no where().

para modificar el código de ejemplo para utilizar su Goal objeto:

UpdateBuilder<Goal, Integer> updateBuilder = goalDao.updateBuilder(); 
// update the goal_title and goal_why fields 
updateBuilder.updateColumnValue("goal_title", "some other title"); 
updateBuilder.updateColumnValue("goal_why", "some other why"); 
// but only update the rows where the description is some value 
updateBuilder.where().eq("goal_desc", "unknown description"); 
// actually perform the update 
updateBuilder.update(); 

Espero que esto ayude.

+0

Muchas gracias Gray por su respuesta y acabo de probar este código pero está dando un error en la última línea updateBuilder.update(), ese método de actualización no existe para tipo updateBuilder. Hay otros dos métodos, updateColumnExpression y updateColumnValue, pero no el método de actualización. Por favor ayuda si obtienes mi problema. Gracias de nuevo – Munazza

+0

Eso fue agregado en la versión 4.34. Es abreviado para 'goalDao.update (updateBuilder.prepare());' – Gray

+0

goalDao.update (updateBuilder.prepare()); también no funciona :(, y otra vez dando un error que esto no está definido para el tipo updateBuilder. Tengo ormlite 4.30, debería usar 4.34? – Munazza

Cuestiones relacionadas