标准数据层开发
一、标准数据层CRUD功能
功能 | 自定义接口 | MP接口 |
---|---|---|
新增 | oolean save(T t) | int insert(T t) |
删除 | boolean delete(int id) | int deleteById( Serializable id) |
修改 | boolean update(T t) | int updateById(T t) |
根据id查询 | T getById(int id) | T selectById(Serializable id) |
查询全部 | List getAll() | List selectList() |
分页查询 | PageInfo getAll(int page,int size) | IPage<>selectPage( IPage page) |
按条件查询 | ListgetAll( condition condition) | IPage selectPage(Wrapper querywrapper) |
二、分页功能
编写测试方法开始,准备工作不再叙述
测试用例:
package com.mannor.mybatis_plus_demo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mannor.mybatis_plus_demo.Dao.UserDao;
import com.mannor.mybatis_plus_demo.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
class MybatisPlusDemoApplicationTests {
@Autowired
private UserDao userDao;
@Test
void testGetByPage() {
IPage page = new Page(1, 2);
userDao.selectPage(page, null);
System.out.println("当前页码值:" + page.getCurrent());
System.out.println("一共多少页:" + page.getPages());
System.out.println("每页显示数:" + page.getSize());
System.out.println("当前记录总数:" + page.getTotal());
System.out.println("查询的数据:" + page.getRecords());
}
}
测试结果:
本操作相当于
select * from user
然后再加上limit限定—>此操作叫做拦截并且增强,所以需要配置MP的拦截器,并且开启一个分页拦截器
只有配置此MP拦截器,拦截功能才能发挥作用。
拦截配置Bean:
package com.mannor.mybatis_plus_demo.config;
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 MPConfig {
@Bean
public MybatisPlusInterceptor mpInterceptor() {
// 1.定义拦截器
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
// 2.定义具体的拦截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
再次运行测试类: