上一节我们学习了如何使用Mybatis的注解,通过注解的方式实现SQL配置。小博老师今天给大家讲解Mybatis使用注解来配置Mapper的新特性:Provider。使用provider可以让我们自定义类,动态定义SQL语句,包括以下几个注解:@SelectProvider、@UpdateProvider、@InsertProvider和@DeleteProvider。这一节学习@SelectProvider的使用方法。
第一步:建立一个Provider类。
这是一个简单的类,不继承任何父类。有两点需要注意:
1. 必须要有无参的构造函数;
2. 生成SQL的方法必须是public的,返回值类型必须为String,可以为static。
第二步:编写Mapper接口类。
与上一节代码稍有不同的是,使用了@SelectProvider注解。接口参数定义了@Param注解。
@SelectProvider注解用于生成查询用的sql语句,不同于@Select注解,@SelectProvide需要指定一个Class及其方法。Mybatis会通过调用Class内的指定方法来获得sql语句,并传递相应参数。
第三步:执行测试。
测试案例与之前的没有变化,结果也与预期一致。
@SelectProvider让编写SQL语句更加灵活,自定义性更强。