MyBatis-Plus的Chain特性
·
Chain
Chain 是 Mybatis-Plus 提供的一种链式编程风格,它允许开发者以更加简洁和直观的方式编写数据库操作代码。Chain 分为
query和update两大类,分别用于查询和更新操作。每类又分为普通链式和 lambda 链式两种风格,其中 lambda 链式提供了类型安全的查询条件构造,但不支持 Kotlin。
query
提供链式操作,可以连续调用方法来构建查询条件。
// 链式查询 普通
QueryChainWrapper<T> query();
// 链式查询 lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery();
示例
@Override
public List<Book> findBookByGtPrince(Double price) {
QueryChainWrapper<Book> queryChainWrapper = new QueryChainWrapper<>(bookMapper);
return queryChainWrapper.gt("book_price",price).list();
}

update
提供链式更新
// 链式更改 普通
UpdateChainWrapper<T> update();
// 链式更改 lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();
与上述同等操作即可
// 普通链式更新示例
update().set("status", "inactive").eq("name", "John").update(); // 将 name 为 "John" 的记录 status 更新为 "inactive"
// lambda 链式更新示例
User updateUser = new User();
updateUser.setEmail("new.email@example.com");
lambdaUpdate().set(User::getEmail, updateUser.getEmail()).eq(User::getId, 1).update(); // 更新 ID 为 1 的用户的邮箱
使用提示
- 链式操作通过返回
QueryChainWrapper或UpdateChainWrapper的实例,允许开发者连续调用方法来构建查询或更新条件。 - lambda 链式操作提供了类型安全的查询条件构造,通过方法引用
Entity::getId等方式,避免了字符串硬编码,提高了代码的可读性和安全性。 - 在使用链式操作时,注意链式方法的调用顺序,通常是先设置条件,然后执行查询或更新操作。
- 链式操作支持多种条件构造方法,如
eq、ne、gt、lt、like等,可以根据实际需求选择合适的方法。 - 链式操作返回的结果可以是单条记录、多条记录、总记录数等,具体取决于最后调用的方法。
通过使用 Chain,可以更加高效地编写数据库操作代码,同时保持代码的清晰和可维护性。
更多推荐



所有评论(0)