MP 标准CRUD与分页
2025/9/17大约 2 分钟
MyBatis-Plus 标准CRUD与分页
目录
标准CRUD用法
MyBatis-Plus 让单表的增删改查变得极其简单,无需写SQL!
对于标准的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢?
1. 新增
User user = new User();
user.setName("张三");
user.setPassword("123456");
user.setAge(20);
user.setTel("18888888888");
userMapper.insert(user); // 返回影响行数
2. 删除
userMapper.deleteById(1L); // 根据主键删除
3. 修改
User user = new User();
user.setId(1L); // 必须带主键
user.setName("李四");
userMapper.updateById(user);
4. 查询
User user = userMapper.selectById(2L); // 根据主键查找
List<User> users = userMapper.selectList(null); // 查询所有
Lombok简化实体类
使用 Lombok 注解,实体类无需手写 getter/setter/toString/构造方法。
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
@Data // getter/setter/toString
@NoArgsConstructor // 无参构造
@AllArgsConstructor // 全参构造
public class User {
private Long id;
private String name;
private String password;
private Integer age;
private String tel;
}
分页功能
分页查询只需两步:
1. 代码调用
分页查询使用的方法是:
IPage<T> selectPage(IPage<T> page, Wrapper<T> queryWrapper)
- IPage:用来构建分页查询条件
- Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
- IPage:返回值,你会发现构建分页条件和方法的返回值都是IPage
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
// 创建分页对象,参数:当前页码,每页条数
IPage<User> page = new Page<>(1, 3);
userMapper.selectPage(page, null); // 第二个参数为条件,可为null
// 获取分页结果
System.out.println("当前页码:" + page.getCurrent());
System.out.println("每页条数:" + page.getSize());
System.out.println("总页数:" + page.getPages());
System.out.println("总记录数:" + page.getTotal());
System.out.println("数据:" + page.getRecords());
2. 配置分页拦截器
这个拦截器MP已经为我们提供好了,我们只需要将其配置成Spring管理的bean对象即可。
点击展开查看分页拦截器配置
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); // 添加分页拦截器
return interceptor;
}
}
⚡ 小贴士:分页插件必须配置,否则分页无效!
常见问题
1. 分页无效?
请检查是否已配置分页拦截器。
2. 如何打印SQL日志?
在 application.yml
中配置:
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台打印SQL日志
下一篇:MP 条件查询与进阶用法