本文小編為大家詳細介紹“Mybatis中@Param注解怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Mybatis中@Param注解怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
首先明確這個注解是為SQL語句中參數賦值而服務的。
@Param的作用就是給參數命名,比如在mapper里面某方法A(int id),當添加注解后A(@Param("userId") int id),也就是說外部想要取出傳入的id值,只需要取它的參數名userId就可以了。將參數值傳如SQL語句中,通過#{userId}進行取值給SQL的參數賦值。
mapper中的方法:
public User selectUser(@Param("userName") String name,@Param("password") String pwd);映射到xml中的<select>標簽
<select id="selectUser" resultMap="User">
select * from user where user_name = #{userName} and user_password=#{password}
</select>其中where user_name = #{userName} and user_password = #{password}中的userName和password都是從注解@Param()里面取出來的,取出來的值就是方法中形式參數 String name 和 String pwd的值。
SQL語句通過@Param注解中的別名把對象中的屬性取出來然后復制
mapper中的方法:
public List<User> getAllUser(@Param("user") User u);映射到xml中的<select>標簽
<select id="getAllUser" parameterType="com.vo.User" resultMap="userMapper">
select
from user t where 1=1
and t.user_name = #{user.userName}
and t.user_age = #{user.userAge}
</select>當使用了@Param注解來聲明參數的時候,SQL語句取值使用#{},${}取值都可以。
當不使用@Param注解聲明參數的時候,必須使用的是#{}來取參數。使用${}方式取值會報錯。
不使用@Param注解時,參數只能有一個,并且是Javabean。在SQL語句里可以引用JavaBean的屬性,而且只能引用JavaBean的屬性。
@Select("SELECT * from Table where id = #{id}")
Enchashment selectUserById(User user);首先解釋一下為毛要用這個東西
當在查詢的時候,一個參數的時候,在直接在入參中寫入就可以了,但是當兩個參數的時候,怎么辦?
兩種辦法:第一用Map ,第二:就用@param,[可讀性比較好,參數少的時候]
注意:當參數為2-5個時候,用@param最佳,當大于5的時候,肯定會選擇map了
舉例說明:
<select id="findRoleByMap" parameterType="map" resultType="role">
SELECT id,name FROM t_role
WHERE roleName=#{roleName}
AND note=#{note}
<select>讀到這里,這篇“Mybatis中@Param注解怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。