您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何在ssm的dao接口中使用@Param注解,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
@Param 注解的用處:為了接口中方法的形參與xml文件中sql語句中的條件參數綁定
完全沒必要使用@Param注解
例:
public interface PaperDao { Paper queryById(long id); }
此時相應的xml文件中,#{}中可以填寫任意名稱
<select id="queryById" parameterType="long" resultMap="resultMap1"> SELECT paper_id,name,number,detail FROM paper WHERE paper_id=#{id} </select>
推薦使用@Param注解進行參數綁定
例:
public interface PaperDao { Paper queryById(@Param("id") long id,@Param("name") String name);}
xm文件:
<select id="queryById" parameterType="long" resultMap="resultMap1"> SELECT paper_id,name,number,detail FROM paper WHERE paper_id=#{id} AND name=#{name} </select>
補充:SSM整合過程關于@Param注解使用的一些細節
1.首先先聲明一下該注解的功能,就是給參數進行命名來找到對應參數,
舉個例子(例如在Mybatis的XXXMapper.xml文件中針對某個sql語句 比如根據id來查詢某個實體,那么假如我們傳入的參數列名為id,但是實體類的column確實userID,這時候我們可以將參數就行命名為userID,
這時候我們就可以根據這個命名找到該參數,類似于該參數的一個“id”的感覺,這樣就可以將參數正確的注入sql語句中。
例如:
public int getUserDetail(@Param("userId") int id); //這里我們就可以利用#{userId}來獲取到id的值 在執行sql語句時候
還有一個好處就是使用該注解來聲明參數時,使用#{}和KaTeX parse error: Expected 'EOF', got '#' at position 25: …會報錯,但是不使用的話就只能用#?{}(一般多數情況都是#{},…${}會產生sql注入的問題。
但是這里我總結一個我用這個注解時候遇到的一個很坑的問題,就是在你調用某個帶有@Param注解的函數的時候,傳參數的時候就會報錯,這點需要注意
關于如何在ssm的dao接口中使用@Param注解就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。