1. 标准数据层CRUD功能
基础功能测试
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
@Autowired
private UserDao userDao;
@Test
void testSave(){
User user = new User();
user.setName("xwy");
user.setPassword("666");
user.setAge(23);
user.setTel("1111111");
userDao.insert(user);
}
@Test
void testDelete(){
userDao.deleteById(1401856123725713409L);
}
// 这里不需要动态sql,直接是写修改哪些字段,哪些字段就修改,其它字段不进行修改
@Test
void testUpdate(){
User user = new User();
user.setId(1L);
user.setName("Tom888");
user.setPassword("tom888");
userDao.updateById(user);
}
@Test
void testGetById(){
User user = userDao.selectById(2L);
System.out.println(user);
}
@Test
void testGetAll() {
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
2. 分页功能
在使用MyBatisPlus的分页功能时,需要配置分页拦截器。因为MyBatisPlus默认不支持分页查询,而是通过拦截器来实现分页。拦截器可以在SQL 执行前拦截 SQL 语句,动态生成分页 SQL 语句,以实现分页查询功能。
具体来说,分页拦截器会在执行 SQL 语句之前,根据传入的参数生成一个新的分页查询 SQL 语句,并将其设置为参数对象中的 SQL 语句。这样,在执行 SQL 语句时,就会执行分页查询语句,返回指定范围内的结果数据。
所以需要先配置拦截器。
@Configuration
public class MpConfig {
@Bean
public MybatisPlusInterceptor mpInterceptor(){
//1.定义Mp拦截器
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
//2.添加具体的拦截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
再进行分页测试(如果不进行拦截器拦截,分页功能执行的是SelectAll的功能,配置之后才能使用分页功能)
@Test
void testGetByPage(){
//IPage对象封装了分页操作相关的数据
IPage page = new Page(2,3);// current页码, size每页显示数
userDao.selectPage(page,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());
}