使用Mybatis—Plus完成分页插件
一个大菜鸟第一次写博客,请大佬们指教。
SpringBoot方式
package com.syxy.demo.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@Configuration
@MapperScan("com.syxy.demo.dao")
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
return paginationInterceptor;
}
}
Dao层:
package com.syxy.demo.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.syxy.demo.annotation.InterceptAnnotation;
import com.syxy.demo.entity.UserEntity;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao extends BaseMapper<UserEntity> {
IPage<UserEntity> selectPageVo(Page<UserEntity> page, Integer age);
}
XML:
<select id="selectPageVo" resultType="com.syxy.demo.entity.UserEntity">
SELECT * FROM user WHERE age=#{age}
</select>
测试:
package com.syxy.demo;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.syxy.demo.dao.UserDao;
import com.syxy.demo.entity.UserEntity;
import com.syxy.demo.service.UserService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
class DemoApplicationTests {
@Autowired
private UserDao userDao;
@Test
void selectUser(){
Page<UserEntity> page = new Page<>();
page.setSize(5);
page.setCurrent(1);
IPage<UserEntity> userEntityIPage = userDao.selectPageVo(page, 18);
System.out.println(userEntityIPage);
}
}
结果:
自定义拦截器拼接sql和修改,带结果:https://blog.csdn.net/JavaxiaocaiB/article/details/107005064