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);
より良い解決策を教えてください。
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
docs を参照してください。
Dao<Category, Integer> catDao = getHelper().getCategoryDao();
List <Category> categoryList = catDao.queryForAll();
for (Category c: categoryList ) {
c.setCategoryType("BarType");
catDao.update(c);
}