@Param註解的使用和解析
阿新 • • 發佈:2018-11-22
作用:用註解來簡化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>