阅读量:0
MyBatis-Plus(简称MP)是一个 MyBatis 的增强工具,用于简化 MyBatis 开发
- 使用 LambdaQueryWrapper:
LambdaQueryWrapper 是 MyBatis-Plus 提供的一个查询条件构造器,支持链式调用。你可以使用它来构建复杂的查询条件。例如:
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getAge, 25) // 年龄等于25 .like(User::getName, "张%") // 名字以"张"开头 .between(User::getCreateTime, startTime, endTime); // 创建时间在指定范围内 List<User> users = userMapper.selectList(queryWrapper);
- 使用 QueryWrapper:
QueryWrapper 是 MyBatis-Plus 提供的另一个查询条件构造器,与 LambdaQueryWrapper 类似,但不使用 Java 8 的 Lambda 表达式。例如:
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("age", 25) // 年龄等于25 .like("name", "张%") // 名字以"张"开头 .between("create_time", startTime, endTime); // 创建时间在指定范围内 List<User> users = userMapper.selectList(queryWrapper);
- 使用 XML 编写自定义查询:
如果你需要更复杂的查询逻辑,可以在对应的 Mapper XML 文件中编写自定义查询。例如:
<!-- UserMapper.xml --><select id="selectUsersByComplexCondition" resultType="com.example.entity.User"> SELECT * FROM user WHERE age = #{age} AND name LIKE #{namePattern} AND create_time BETWEEN #{startTime} AND #{endTime} </select>
然后在对应的 Mapper 接口中添加方法声明:
public interface UserMapper extends BaseMapper<User> { List<User> selectUsersByComplexCondition(@Param("age") int age, @Param("namePattern") String namePattern, @Param("startTime") Date startTime, @Param("endTime") Date endTime); }
最后在服务类中调用该方法:
List<User> users = userMapper.selectUsersByComplexCondition(25, "张%", startTime, endTime);
通过以上方法,你可以在 MyBatis-Plus 中实现复杂的查询逻辑。