Mybatis如何傳入多個參數(shù)的實現(xiàn)代碼
第一種方式:使用@Param注解方式
此種方式用法是我們在接口中寫方法的參數(shù)時,在每個參數(shù)的前面加上一個@Param注解即可。
該注解有一個value屬性,我們可以給加上注解的參數(shù)取個名字,在SQL語句中我們可以通過這個名字獲取參數(shù)值。
由于傳入了多個參數(shù),所以映射文件的入?yún)arameterType不用寫。
假如我們在接口的方法如下:
//根據(jù)傳入的用戶名和主鍵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參數(shù),存在的參數(shù)有name, id, param1, param2,那么我們按照控制臺說的來就可以了。
①按照指定的參數(shù)名
<update id="updateUserByManyParam"> update user set username = #{name} where id = #{id} </update>
②按照參數(shù)的順序
<update id="updateUserByManyParam"> update user set username = #{param1} where id = #{param2} </update>
第二種方式:按照參數(shù)的編寫順序
此種方式我們在傳入?yún)?shù)的時候什么都不用做就行了,只要在SQL語句中按照規(guī)則獲取參數(shù)值即可。
假如我們在接口的方法如下:
//根據(jù)傳入的用戶名和主鍵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參數(shù),存在的參數(shù)有arg1, arg0, param1, param2,那么我們按照控制臺說的來就可以了。
①按照參數(shù)的順序
<update id="updateUserByManyParam"> update user set username = #{arg0} where id = #{arg1} </update>
②按照參數(shù)的順序
<update id="updateUserByManyParam"> update user set username = #{param1} where id = #{param2} </update>
總結
- 使用@Param注解方式,在SQL語句中我們可以按照自定義的名稱獲取參數(shù)值,也可以用param1、param2、…順序來獲取參數(shù)值。
- 直接傳入?yún)?shù),在SQL語句中按照參數(shù)傳遞的順序,利用arg1、arg2、…順序獲得對應的參數(shù)值。
- 直接傳入?yún)?shù),在SQL語句中按照參數(shù)傳遞的順序,利用param1、param2、…順序來獲取參數(shù)值。
注意:param后面的數(shù)字是從1開始的,而arg后面的數(shù)字是從0開始的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
springboot與vue實現(xiàn)簡單的CURD過程詳析
這篇文章主要介紹了springboot與vue實現(xiàn)簡單的CURD過程詳析,圍繞springboot與vue的相關資料展開實現(xiàn)CURD過程的過程介紹,需要的小伙伴可以參考一下2022-01-01解決SpringMvc后臺接收json數(shù)據(jù)中文亂碼問題的幾種方法
本篇文章主要介紹了解決SpringMvc后臺接收json數(shù)據(jù)中文亂碼問題的幾種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Java?深入學習static關鍵字和靜態(tài)屬性及方法
這篇文章主要介紹了Java?深入學習static關鍵字和靜態(tài)屬性及方法,文章通過圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09SpringBoot實現(xiàn)熱部署Community的示例代碼
本文主要介紹了SpringBoot實現(xiàn)熱部署Community的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06spring-boot-starter-web更換默認Tomcat容器的方法
Spring Boot支持容器的自動配置,默認是Tomcat,當然我們也是可以進行修改的。下面小編給大家?guī)砹藄pring-boot-starter-web更換默認Tomcat容器的方法,感興趣的朋友跟隨小編一起看看吧2019-04-04