5

我有以下数据库表对象:

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 的文档,但不知道如何编写这个查询。请帮助我如何编写此查询。

4

1 回答 1

18

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

我认为您需要RTFM。我在ORMLite文档上花了很长时间,我认为它涵盖了UpdateBuilder相当不错的内容。随意提出更具体的问题,如果没有,我可以添加更多细节。

引用文档:

DAO 还可用于构造自定义 UPDATE 和 DELETE 语句。更新语句用于更改表中与 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();

希望这可以帮助。

于 2012-06-15T14:35:21.397 回答