小編給大家分享一下Mybatis怎么傳入多個(gè)參數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)三水免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
第一種方式:使用@Param注解方式
此種方式用法是我們在接口中寫方法的參數(shù)時(shí),在每個(gè)參數(shù)的前面加上一個(gè)@Param注解即可。
該注解有一個(gè)value屬性,我們可以給加上注解的參數(shù)取個(gè)名字,在SQL語句中我們可以通過這個(gè)名字獲取參數(shù)值。
由于傳入了多個(gè)參數(shù),所以映射文件的入?yún)arameterType不用寫。
假如我們在接口的方法如下:
//根據(jù)傳入的用戶名和主鍵id去修改用戶名int updateUserByManyParam(@Param("name")String username,@Param("id")Integer id);
我們先在映射文件里面瞎寫看看控制臺(tái)會(huì)報(bào)什么錯(cuò)誤:
//錯(cuò)誤實(shí)例:<update id="updateUserByManyParam"> update user set username = #{name1} where id = #{oid}</update>
好了,看看控制臺(tái)報(bào)了什么錯(cuò):
//錯(cuò)誤信息Cause: org.apache.ibatis.binding.BindingException: Parameter 'name1' not found.Available parameters are [name, id, param1, param2]
從錯(cuò)誤信息我們可以看到,它說找不到name1參數(shù),存在的參數(shù)有name, id, param1, param2,那么我們按照控制臺(tái)說的來就可以了。
①按照指定的參數(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ù)的時(shí)候什么都不用做就行了,只要在SQL語句中按照規(guī)則獲取參數(shù)值即可。
假如我們在接口的方法如下:
//根據(jù)傳入的用戶名和主鍵id去修改用戶名int updateUserByManyParam(@Param("name")String username,@Param("id")Integer id);
我們和上面一樣,先在映射文件里面瞎寫看看控制臺(tái)會(huì)報(bào)什么錯(cuò)誤:
//錯(cuò)誤實(shí)例:<update id="updateUserByManyParam"> update user set username = #{ddd} where id = #{fff}</update>
好了,看看控制臺(tái)報(bào)了什么錯(cuò):
//錯(cuò)誤信息:Cause: org.apache.ibatis.binding.BindingException: Parameter 'ddd' not found. Available parameters are [arg1, arg0, param1, param2]
從錯(cuò)誤信息我們可以看到,它說找不到ddd參數(shù),存在的參數(shù)有arg1, arg0, param1, param2,那么我們按照控制臺(tái)說的來就可以了。
①按照參數(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>
總結(jié)
使用@Param注解方式,在SQL語句中我們可以按照自定義的名稱獲取參數(shù)值,也可以用param1、param2、…順序來獲取參數(shù)值。 直接傳入?yún)?shù),在SQL語句中按照參數(shù)傳遞的順序,利用arg1、arg2、…順序獲得對應(yīng)的參數(shù)值。 直接傳入?yún)?shù),在SQL語句中按照參數(shù)傳遞的順序,利用param1、param2、…順序來獲取參數(shù)值。
注意:param后面的數(shù)字是從1開始的,而arg后面的數(shù)字是從0開始的。
以上是“Mybatis怎么傳入多個(gè)參數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
新聞名稱:Mybatis怎么傳入多個(gè)參數(shù)
URL網(wǎng)址:http://www.rwnh.cn/article36/jsdisg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、用戶體驗(yàn)、建站公司、服務(wù)器托管、外貿(mào)建站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)