1. 程式人生 > >@Param註解的使用和解析

@Param註解的使用和解析

作用:用註解來簡化xml配置的時候(比如Mybatis的Mapper.xml中的sql引數引入),@Param註解的作用是給引數命名,引數命名後就能根據名字得到引數值,正確的將引數傳入sql語句中(一般通過#{}的方式,${}會有sql注入的問題)。

例項說明:

1,使用@Param註解  

Mapper介面方法:

 public int getUsersDetail(@Param("userid") int userid);

對應Sql Mapper.xml檔案:

 <select id="getUserDetail" statementType="CALLABLE" resultMap="baseMap">
          Exec WebApi_Get_CustomerList #{userid}
 </select>

說明:

當你使用了使用@Param註解來宣告引數時,如果使用 #{} 或 ${} 的方式都可以,當你不使用@Param註解來宣告引數時,必須使用使用 #{}方式。如果使用 ${} 的方式,會報錯。

2,不使用@Param註解

不使用@Param註解時,最好傳遞 Javabean。在SQL語句裡就可以直接引用JavaBean的屬性,而且只能引用JavaBean存在的屬性。

Mapper介面方法:

 public int getUsersDetail(User user);

對應Sql Mapper.xml檔案:

 <!--這裡直接引用物件屬性即可,不需要物件.屬性的方式--> 
<select id="getUserDetail" statementType="CALLABLE" resultMap="baseMap">
          Exec WebApi_Get_CustomerList #{userid}
</select>