文章目录
- 前言
- 一、使用步骤
- 1. query
- 2. update
- 二、使用提示
- 总结
前言
Chain 是 Mybatis-Plus 提供的一种链式编程风格,它允许开发者以更加简洁和直观的方式编写数据库操作代码。Chain 分为 query 和 update 两大类,分别用于查询和更新操作。每类又分为普通链式和 lambda 链式两种风格,其中 lambda 链式提供了类型安全的查询条件构造,但不支持 Kotlin。
一、使用步骤
1. query
提供链式查询操作,可以连续调用方法来构建查询条件。
// 链式查询 普通
QueryChainWrapper<T> query();
// 链式查询 lambda 式。注意:不支持 Kotlin
LambdaQueryChainWrapper<T> lambdaQuery();
示例:
@Autowired
UserMapper userMapper;
@RequestMapping("01")
public void chain01() {// 普通链式查询示例List<User1> list = new QueryChainWrapper<>(userMapper).eq("name", "John").list();// 查询 name 为 "John" 的所有记录System.out.println(list);// lambda 链式查询示例User1 one = new LambdaQueryChainWrapper<>(userMapper).eq(User1::getAge, 30).one();// 查询年龄为 30 的单条记录System.out.println(one);
}
2. update
提供链式更新操作,可以连续调用方法来构建更新条件。
// 链式更改 普通
UpdateChainWrapper<T> update();
// 链式更改 lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();
示例:
@Autowired
UserMapper userMapper;
@RequestMapping("02")
public void chain02() {// 普通链式更新示例boolean update = new UpdateChainWrapper<>(userMapper).set("status", "inactive").eq("name", "John").update();// 将 name 为 "John" 的记录 status 更新为 "inactive"System.out.println(update);// lambda 链式更新示例User1 updateUser = new User1();updateUser.setEmail("new.email@example.com");boolean update1 = new LambdaUpdateChainWrapper<>(userMapper).set(User1::getEmail, updateUser.getEmail()).eq(User1::getId, 1).update();// 更新 ID 为 1 的用户的邮箱System.out.println(update1);
}
二、使用提示
- 链式操作通过返回 QueryChainWrapper 或 UpdateChainWrapper 的实例,允许开发者连续调用方法来构建查询或更新条件。
- lambda 链式操作提供了类型安全的查询条件构造,通过方法引用 Entity::getId 等方式,避免了字符串硬编码,提高了代码的可读性和安全性。
- 在使用链式操作时,注意链式方法的调用顺序,通常是先设置条件,然后执行查询或更新操作。
链式操作支持多种条件构造方法,如 eq、ne、gt、lt、like 等,可以根据实际需求选择合适的方法。 - 链式操作返回的结果可以是单条记录、多条记录、总记录数等,具体取决于最后调用的方法。
通过使用 Chain,开发者可以更加高效地编写数据库操作代码,同时保持代码的清晰和可维护性。
总结
回到顶部