最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼

 更新時(shí)間:2019年12月17日 11:45:24   作者:培珺  
這篇文章主要介紹了Mybatis如何傳入多個(gè)參數(shù)的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

第一種方式:使用@Param注解方式

此種方式用法是我們?cè)诮涌谥袑?xiě)方法的參數(shù)時(shí),在每個(gè)參數(shù)的前面加上一個(gè)@Param注解即可。

該注解有一個(gè)value屬性,我們可以給加上注解的參數(shù)取個(gè)名字,在SQL語(yǔ)句中我們可以通過(guò)這個(gè)名字獲取參數(shù)值。

由于傳入了多個(gè)參數(shù),所以映射文件的入?yún)arameterType不用寫(xiě)。

假如我們?cè)诮涌诘姆椒ㄈ缦拢?/p>

//根據(jù)傳入的用戶名和主鍵id去修改用戶名
int updateUserByManyParam(@Param("name")String username,@Param("id")Integer id);

我們先在映射文件里面瞎寫(xiě)看看控制臺(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ò)誤信息我們可以看到,它說(shuō)找不到name1參數(shù),存在的參數(shù)有name, id, param1, param2,那么我們按照控制臺(tái)說(shuō)的來(lá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ù)的編寫(xiě)順序

此種方式我們?cè)趥魅雲(yún)?shù)的時(shí)候什么都不用做就行了,只要在SQL語(yǔ)句中按照規(guī)則獲取參數(shù)值即可。

假如我們?cè)诮涌诘姆椒ㄈ缦拢?/p>

//根據(jù)傳入的用戶名和主鍵id去修改用戶名
int updateUserByManyParam(@Param("name")String username,@Param("id")Integer id);

我們和上面一樣,先在映射文件里面瞎寫(xiě)看看控制臺(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ò)誤信息我們可以看到,它說(shuō)找不到ddd參數(shù),存在的參數(shù)有arg1, arg0, param1, param2,那么我們按照控制臺(tái)說(shuō)的來(lá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語(yǔ)句中我們可以按照自定義的名稱獲取參數(shù)值,也可以用param1、param2、…順序來(lái)獲取參數(shù)值。
  • 直接傳入?yún)?shù),在SQL語(yǔ)句中按照參數(shù)傳遞的順序,利用arg1、arg2、…順序獲得對(duì)應(yīng)的參數(shù)值。
  • 直接傳入?yún)?shù),在SQL語(yǔ)句中按照參數(shù)傳遞的順序,利用param1、param2、…順序來(lái)獲取參數(shù)值。

注意:param后面的數(shù)字是從1開(kāi)始的,而arg后面的數(shù)字是從0開(kāi)始的。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中使用qsort對(duì)類進(jìn)行排序的操作代碼

    Java中使用qsort對(duì)類進(jìn)行排序的操作代碼

    這篇文章主要介紹了JAVA中如何使用qsort對(duì)類進(jìn)行排序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Java定時(shí)任務(wù)ScheduledThreadPoolExecutor示例詳解

    Java定時(shí)任務(wù)ScheduledThreadPoolExecutor示例詳解

    這篇文章主要介紹了Java定時(shí)任務(wù)ScheduledThreadPoolExecutor示例詳解,這里使用scheduleAtFixedRate方法安排一個(gè)任務(wù),該任務(wù)是一個(gè) Runnable 匿名類,其run方法中調(diào)用了new LoginViewTimeTask().loginStatisticsHandle()方法,需要的朋友可以參考下
    2023-11-11
  • Windows使用多個(gè)JDK的方法詳解

    Windows使用多個(gè)JDK的方法詳解

    本文介紹了如何在Windows系統(tǒng)中同時(shí)使用多個(gè)JDK版本(JDK8和JDK21),并詳細(xì)描述了修改環(huán)境變量和Path變量的步驟,以實(shí)現(xiàn)JDK版本的切換
    2024-12-12
  • JAVA面試題之緩存擊穿、緩存穿透、緩存雪崩的三者區(qū)別

    JAVA面試題之緩存擊穿、緩存穿透、緩存雪崩的三者區(qū)別

    當(dāng)服務(wù)器QPS比較高,并且對(duì)數(shù)據(jù)的實(shí)時(shí)性要求不高時(shí),往往會(huì)接入緩存以達(dá)到快速Response、降低數(shù)據(jù)庫(kù)壓力的作用,常用來(lái)做緩存的中間件如Redis等。本文主要介紹了JAVA面試時(shí)常考的緩存擊穿、穿透、雪崩場(chǎng)景三者區(qū)別,有興趣的小伙伴可以看一下
    2021-11-11
  • Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程

    Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程

    基礎(chǔ)掌握怎么樣,用實(shí)戰(zhàn)檢驗(yàn)就知道了,本篇文章手把手帶你用java+SpringBoot+Maven+Vue+mysql實(shí)現(xiàn)一個(gè)在線服裝銷售商城系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2022-01-01
  • 利用Java+OpenCV實(shí)現(xiàn)拍照功能

    利用Java+OpenCV實(shí)現(xiàn)拍照功能

    網(wǎng)上大多是利用C語(yǔ)言或者Python實(shí)現(xiàn)拍照功能,本文將為大家介紹另一種方法,即在Java中調(diào)用OpenCV實(shí)現(xiàn)拍照功能,感興趣的可以了解一下
    2022-01-01
  • java自定義線程模型處理方法分享

    java自定義線程模型處理方法分享

    本文給大家總結(jié)分享了下個(gè)人關(guān)于java處理自定義線程模型的一些經(jīng)驗(yàn)和處理方法,有需要的小伙伴可以參考下
    2016-08-08
  • Java中I/O輸入輸出的深入講解

    Java中I/O輸入輸出的深入講解

    Java的I/O技術(shù)可以將數(shù)據(jù)保存到文本文件、二進(jìn)制文件甚至是ZIP壓縮文件中,以達(dá)到永久性保存數(shù)據(jù)的要求,下面這篇文章主要給大家介紹了關(guān)于Java中I/O輸入輸出的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Java中的密碼加密方式

    Java中的密碼加密方式

    文章介紹了Java中使用MD5算法對(duì)密碼進(jìn)行加密的方法,以及如何通過(guò)加鹽和多重加密來(lái)提高密碼的安全性,MD5是一種不可逆的哈希算法,適合用于存儲(chǔ)密碼,因?yàn)槠漭敵龅恼L(zhǎng)度固定,且不容易發(fā)生碰撞,此外,通過(guò)加鹽和多重加密,可以進(jìn)一步增加密碼的復(fù)雜性和安全性
    2025-01-01
  • Java Vector實(shí)現(xiàn)班級(jí)信息管理系統(tǒng)

    Java Vector實(shí)現(xiàn)班級(jí)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java Vector實(shí)現(xiàn)班級(jí)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評(píng)論

余江县| 房山区| 襄城县| 张掖市| 栾城县| 弋阳县| 讷河市| 柳州市| 舟山市| 筠连县| 体育| 常宁市| 垦利县| 丹江口市| 成武县| 新绛县| 浮山县| 沧州市| 曲周县| 定州市| 同德县| 东至县| 五峰| 三原县| 洪湖市| 上思县| 汉中市| 大足县| 博白县| 遂川县| 柳林县| 河池市| 海阳市| 富蕴县| 淳安县| 吉木乃县| 阿合奇县| 唐河县| 睢宁县| 永宁县| 衡阳县|