Как обновить столбец с помощью ORMLite - программирование

Как обновить столбец с помощью ORMLite

У меня есть уже созданная база данных для приложения Android, и я использую ORMLite для запроса в SQLLite.

Я добавил столбец в категории, и я хочу вставить данные в этот столбец. У меня есть строка, например.

catId=5 catname="food" catType=?

Я хочу обновить catType на основе catId. Как я могу обновить этот столбец catType с помощью catId в ORMLite.

Я использую этот подход:

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

Пожалуйста, предоставьте мне лучшее решение.

4b9b3361

Ответ 1

Я хочу обновить catType на основе catId. Как я могу обновить столбец catType с catId в ORMLite.

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.

Ответ 2

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