您好,登錄后才能下訂單哦!
第一種方式:使用@Param注解方式
此種方式用法是我們在接口中寫方法的參數時,在每個參數的前面加上一個@Param注解即可。
該注解有一個value屬性,我們可以給加上注解的參數取個名字,在SQL語句中我們可以通過這個名字獲取參數值。
由于傳入了多個參數,所以映射文件的入參ParameterType不用寫。
假如我們在接口的方法如下:
//根據傳入的用戶名和主鍵id去修改用戶名 int updateUserByManyParam(@Param("name")String username,@Param("id")Integer id);
我們先在映射文件里面瞎寫看看控制臺會報什么錯誤:
//錯誤實例: <update id="updateUserByManyParam"> update user set username = #{name1} where id = #{oid} </update>
好了,看看控制臺報了什么錯:
//錯誤信息 Cause: org.apache.ibatis.binding.BindingException: Parameter 'name1' not found. Available parameters are [name, id, param1, param2]
從錯誤信息我們可以看到,它說找不到name1參數,存在的參數有name, id, param1, param2,那么我們按照控制臺說的來就可以了。
①按照指定的參數名
<update id="updateUserByManyParam"> update user set username = #{name} where id = #{id} </update>
②按照參數的順序
<update id="updateUserByManyParam"> update user set username = #{param1} where id = #{param2} </update>
第二種方式:按照參數的編寫順序
此種方式我們在傳入參數的時候什么都不用做就行了,只要在SQL語句中按照規則獲取參數值即可。
假如我們在接口的方法如下:
//根據傳入的用戶名和主鍵id去修改用戶名 int updateUserByManyParam(@Param("name")String username,@Param("id")Integer id);
我們和上面一樣,先在映射文件里面瞎寫看看控制臺會報什么錯誤:
//錯誤實例: <update id="updateUserByManyParam"> update user set username = #{ddd} where id = #{fff} </update>
好了,看看控制臺報了什么錯:
//錯誤信息: Cause: org.apache.ibatis.binding.BindingException: Parameter 'ddd' not found. Available parameters are [arg1, arg0, param1, param2]
從錯誤信息我們可以看到,它說找不到ddd參數,存在的參數有arg1, arg0, param1, param2,那么我們按照控制臺說的來就可以了。
①按照參數的順序
<update id="updateUserByManyParam"> update user set username = #{arg0} where id = #{arg1} </update>
②按照參數的順序
<update id="updateUserByManyParam"> update user set username = #{param1} where id = #{param2} </update>
總結
注意:param后面的數字是從1開始的,而arg后面的數字是從0開始的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。