19

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

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

catId=5 catname="food" catType=?

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

私はこのアプローチを使用しています:

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

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

4

2 に答える 2

71

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

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その他の例については、ドキュメントを参照してください。

于 2012-09-21T12:33:49.547 に答える
4
Dao<Category, Integer> catDao = getHelper().getCategoryDao();
List <Category> categoryList = catDao.queryForAll();
for (Category c: categoryList ) {
    c.setCategoryType("BarType");
    catDao.update(c);
}
于 2014-04-02T12:08:42.180 に答える