本文比较了使用 MyBatis-Plus 更新排序字段的两种方式,它们都能够实现排序字段的更新,但在实现方式和适用场景上有所区别。

第一种方式:使用 SQL 语句

favoriteService.update(
        Wrappers.<Favorite>lambdaUpdate()
                .setSql('SORT = SORT - 1')
                .gt(Favorite::getSort, favorite.getSort())
);

这种方式利用 MyBatis-Plus 提供的 Wrapper 对象构建更新条件,并通过 setSql 方法指定 SQL 语句,一次性更新多条记录。它适用于需要批量更新排序字段的场景,例如对多条记录进行整体的排序调整。

第二种方式:逐条修改

List<Favorite> favoriteList = favoriteService.list(
        Wrappers.<Favorite>lambdaQuery()
                .gt(Favorite::getSort, favorite.getSort())
);
favoriteList.forEach(i -> i.setSort(i.getSort() - 1));
favoriteService.updateBatchById(favoriteList);

这种方式先查询出需要更新的记录,然后逐条修改排序字段,最后一次性更新到数据库中。它适用于需要逐条修改记录的场景,例如需要在修改一条记录时,同时修改其后面所有记录的排序字段,以确保数据的一致性。

总结

两种方式各有优劣,具体使用哪种方式需要根据实际情况来决定。如果您需要一次性更新多条记录,建议使用第一种方式;如果您需要逐条修改记录,建议使用第二种方式。

MyBatis-Plus 更新排序字段的两种方式比较

原文地址: https://www.cveoy.top/t/topic/mUd2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录