1. Service 和 Mapper?
IService:内置了海量现成方法,save, update, list, page 等,适用于绝大多数单表 CRUD。
BaseMapper:当需要进行复杂联表查询、或者要写自定义 SQL 时,它就是你的主战场。
// 简单查询,用 Service 的 lambdaQuery
List<User> users = userService.lambdaQuery()
.eq(User::getStatus, 1)
.like(User::getName, "张")
.list();
// 复杂查询,用 Mapper + XML 或注解!
// 在 UserMapper.java 中
@Select("SELECT u.*, d.dept_name FROM user u LEFT JOIN dept d ON u.dept_id = d.id WHERE u.id = #{userId}")
UserVO selectUserDetail(@Param("userId") Long userId);
别在 Service 里硬塞复杂 SQL,该写 XML 的时候还是不能偷懒。
2. Lambda 表达式
MP 最棒的特性之一就是 Lambda 查询,编译期就