Как обновить столбец с помощью 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);
Пожалуйста, предоставьте мне лучшее решение.
Ответы
Ответ 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);
}