Mybatis之@Provider的使用方式


@provide

  @provide主要分为四种:@InsertProvider、@DeleteProvider、@UpdateProvider@SelectProvider,分别对应着sql中的增删改查四种操作。

  四种注解的使用方式相同,故以@SelectProvide为例进行介绍:

  @SelectProvide注解主要作用在Mapper的interface文件上,写法是

 

@SelectProvide(type="XXX.class", method="exampleMethod")
@ResultMap("Enitity")
public Enitity getSomething();

 

  上面代码中@SelectProvide的意思是:“getSomething接口使用的是XXX这个类中exampleMethod函数返回的sql语句”,其中的两个参数,XXX.class代表指定的一个类,用户自定义;exampleMethod代表这个类中的一个函数,用来返回sql语句,这个函数返回值必须是String类型函数,返回的就是一个sql字符串。@ResultMap注释的意思是从sql的执行结果集中去数据,拼装成Enitity的实体类。

  一个参@SelectProvide

@SelectProvider(type = SqlProvider.class, method = "selectUser2")
     @ResultMap("userMap")
     public User getUser2(@Param("userId") long userId);
public String selectUser2(Map<String, Object> para) {
         return "select * from user where userId=" + para.get("userId");
     }

  多个参数@SelectProvide

 

@SelectProvider(type = SqlProvider.class, method = "selectUserCheck")
     @ResultMap("userMap")
     public User getUserCheck(@Param("userId") long userId, String password);
 public String selectUserCheck(Map<String, Object> para) {
         return "select * from user where userId=" + para.get("userId") + " and password='" + para.get("1") + "'";
}

  

 

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM