我有以下数据库表对象:
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的文档,无法知道如何编写这个查询。请帮我怎么写这个查询。
答案 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();
希望这有帮助。