MybatisPlus-分页插件
springboot方式:
@Configuration @EnableTransactionManagement @MapperScan("com.xl.baomidouTest.mapper") public class MybatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false // paginationInterceptor.setOverflow(false); // 设置最大单页限制数量,默认 500 条,-1 不受限制 // paginationInterceptor.setLimit(500); // 开启 count 的 join 优化,只针对部分 left join //paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true)); return paginationInterceptor; } }
userMapper.java
public interface UserMapper extends BaseMapper<User> { //@Select("select * from user ${ew.customSqlSegment}") List<User> getAll(@Param(Constants.WRAPPER) QueryWrapper<User> wrapper); IPage<User> selectAllUser(Page<User> page, @Param(Constants.WRAPPER) QueryWrapper<User> wrapper); }
userMapper.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTO Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="com.xl.baomidouTest.mapper.UserMapper">
<select id="getAll" resultType="com.xl.baomidouTest.entity.User">
SELECT * FROM user ${ew.customSqlSegment}
</select>
<select id="selectAllUser" resultType="com.xl.baomidouTest.entity.User">
SELECT * FROM user ${ew.customSqlSegment}
</select>
</mapper>
application.yml
# DataSource Config spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/baomidou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 username: root password: 111111 mybatis-plus: mapper-locations: classpath:/mapper/*.xml # 实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.xl.baomidouTest.entity
测试:
@SpringBootTest class BaomidouTestApplicationTests { @Autowired//注入 private UserMapper userMapper; @Test void selectAllUser() { Page page = new Page(1,1); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("age",18); IPage<User> iPage = userMapper.selectAllUser(page,queryWrapper); System.out.println("总记录数:"+iPage.getTotal()); System.out.println("总页数:"+iPage.getPages()); List<User> userList = iPage.getRecords(); userList.forEach(System.out::println); } }
浙公网安备 33010602011771号