更新Android中ormlite数据库表中的所有列

时间:2012-06-14 19:51:06

标签: android orm

我有以下数据库表对象:

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

我在这个表中添加了一些行,现在我想写一个查询来更新该表中一行的所有列。我看过ORM的文档,无法知道如何编写这个查询。请帮我怎么写这个查询。

1 个答案:

答案 0 :(得分:18)

  

我在这个表中添加了一些行,现在我想写一个查询来更新该表中一行的所有列。

我认为你需要RTFM。我花了很长时间在ORMLite文档上,我认为它covers the UpdateBuilder非常好。如果没有,请随意提出更具体的问题。

引用文档:

  

DAO还可用于构造自定义UPDATE和DELETE语句。 Update语句用于更改表中与WHERE模式匹配的行中的某些字段 - 如果没有where(),则更新所有行。 Delete语句用于从表中删除与WHERE模式匹配的行 - 如果没有where(),则删除所有行。

调整示例代码以使用Goal对象:

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

希望这有帮助。