web-dev-qa-db-ja.com

ORMLiteで列を更新する方法

Androidアプリケーション用にデータベースを作成済みで、SQLLiteへのクエリにORMLiteを使用しています。

カテゴリに列を追加しましたが、その列にデータを挿入したいと思います。私は列を持っています、例えば.

catId=5 catname="food" catType=?

catTypeに基づいてcatIdを更新したいと思います。このcatType列をORMLiteの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);

より良い解決策を教えてください。

18
khus_android

CatIdに基づいてcatTypeを更新したいと思います。このcatType列をORMLiteのcatIdで更新するにはどうすればよいですか。

ORMLiteUpdateBuilder もサポートします。使用方法は次のとおりです。

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 を参照してください。

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