//分页查询十条数据
accountTenantMapper.selectPage(new Page<>(0,10), new QueryWrapper<>());
mybatisplus几乎提供了关于单表操作该有的所有方法,比如单表的查询一条,全部,分页都有现成的方法,只需要创建一个条件构造器new QueryWrapper(),然后通过对象调用各种条件方法,得到查询条件。
//添加一个连表查询的方法,第一个参数传一个Page可以实现查询结果自动分页,多个参数要添加@Param注解,传入Wrapper对象使我们的方法也可以用条件构造器
IPage<AccountTenantCancel> tenantCancelQueryPage(Page page, @Param(Constants.WRAPPER) Wrapper wrapper);
//xml文件内写sql,最后加上${ew.customSqlSegment}使条件构造器生效
<select id="tenantCancelQueryPage" resultMap="BaseResultMap">
select tenant.auth_tenant_id,tenant.auth_tenant_name,tenant.building_num,tenant.tenant_num,
cancel.data_add_time,cancel.data_cancel_time,cancel.data_is_cutting_off_power
from account_tenant_cancel cancel
LEFT JOIN account_tenant tenant
ON cancel.relation_tenant_id = tenant.auth_tenant_id
${ew.customSqlSegment}
</select>
1.第一个参数传入Page则代表对于查询结果进行分页,也必须在第一个参数。
2.同时,对于多个参数的情况,必须加上@param(“映射名”),然后才可以在xml文件中获取到参数对应的映射名称。
3.对于传入了Wrapper对象的方法,对于我们自己写的查询语句使用条件构造器,比如eq()、like()等mysql关键字的条件,条件默认通过and,也可以调用or()使条件用or隔开。
//分页插件配置
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
return paginationInterceptor;
}
如果使用mybatisPlus,那么你只需要把这个Bean配置到SpringBoot的启动类或者加了@Configuration配置类中,那么只要对于上述的查询结果则会自动进行分页,注意如果没配置该Bean分页不会生效。
//mybatisPlus提供的默认的单表分页查询的方法,第一个参数传入传入一个page,创建page的时候传入当前页码和每页条数。后面是条件构造器去构建查询条件
IPage<AccountTenant> accountTenantIPage = accountTenantMapper.selectPage(
new Page<AccountTenant>(query.getPageNo(), query.getPageSize()),
new QueryWrapper<AccountTenant>()
.eq(query.getBuildingNum()!=null&&query.getBuildingNum()!="","building_num",query.getBuildingNum())
.eq(query.getTenantNum()!=null&& query.getTenantNum()!="","tenant_num",query.getTenantNum())
.eq(query.getAuthTenantName()!=null&&query.getAuthTenantName()!="","auth_tenant_name",query.getAuthTenantName()));
List<AccountTenant> records = accountTenantIPage.getRecords();
总结:关于myBatisPlus的功能还有很多,比如代码生成器等,如果需要可以去官网查看,全中文的介绍,最后用mybatisPlus的开场语来结束这篇随笔。
对Mybatis只做增强不做修改,如丝般顺滑。