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