MyBatisPlus条件构造器

1.条件构造器简单使用

使用场景:通常使用在查询的时候

1.通过mybatisplus提供的方法进行查询(单表查询)

//分页查询十条数据
accountTenantMapper.selectPage(new Page<>(0,10), new QueryWrapper<>());

mybatisplus几乎提供了关于单表操作该有的所有方法,比如单表的查询一条,全部,分页都有现成的方法,只需要创建一个条件构造器new QueryWrapper(),然后通过对象调用各种条件方法,得到查询条件。

2.对应多表查询

//添加一个连表查询的方法,第一个参数传一个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隔开。

2.分页插件的的使用

关于分页插件的使用

	//分页插件配置
	@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只做增强不做修改,如丝般顺滑。

你可能感兴趣的:(Mybatis)