如何使用ORMLite更新列

时间:2012-09-19 14:53:25

标签: android sqlite ormlite

我已经为Android应用程序创建了一个数据库,我正在使用ORMLite来查询SQLLite。

我在类别中添加了一列,我想在该列中插入数据。 我有排,例如

catId=5 catname="food" catType=?

我想在catType的基础上更新catId。如何使用ORMLite中的catType更新此catId列。

我正在使用这种方法:

Dao<Category, Integer> catDao = getHelper().getCategoryDao();
QueryBuilder<Category, Integer> queryBuilder = catDao.queryBuilder();
queryBuilder.where().eq("categoryId", 5);
PreparedQuery<Category> pq = queryBuilder.prepare();
Category category = catDao.queryForFirst(pq);
category.setCategoryType("BarType");
catDao.createOrUpdate(category);

请为我提供更好的解决方案。

2 个答案:

答案 0 :(得分:68)

  

我想在catId的基础上更新catType。如何使用ORMLite中的catId更新此catType列。

ORMLite也支持UpdateBuilder。以下是您可以使用它的方法:

UpdateBuilder<Category, Integer> updateBuilder = catDao.updateBuilder();
// set the criteria like you would a QueryBuilder
updateBuilder.where().eq("categoryId", 5);
// update the value of your field(s)
updateBuilder.updateColumnValue("catType" /* column */, "BarType" /* value */);
updateBuilder.update();

有关更多示例,请参阅UpdateBuilder docs

答案 1 :(得分:3)

Dao<Category, Integer> catDao = getHelper().getCategoryDao();
List <Category> categoryList = catDao.queryForAll();
for (Category c: categoryList ) {
    c.setCategoryType("BarType");
    catDao.update(c);
}