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

Mybatis中@Param注解的用法詳解

 更新時(shí)間:2022年07月18日 11:43:08   作者:曉風(fēng)殘?jiān)乱煌P(guān)河蕭索  
@Param注解的作用是給參數(shù)命名,參數(shù)命名后就能根據(jù)名字得到參數(shù)值,正確的將參數(shù)傳入sql語(yǔ)句中,下面這篇文章主要給大家介紹了關(guān)于Mybatis中@Param注解用法的相關(guān)資料,需要的朋友可以參考下

1、概述

首先明確這個(gè)注解是為SQL語(yǔ)句中參數(shù)賦值而服務(wù)的。

@Param的作用就是給參數(shù)命名,比如在mapper里面某方法A(int id),當(dāng)添加注解后A(@Param("userId") int id),也就是說(shuō)外部想要取出傳入的id值,只需要取它的參數(shù)名userId就可以了。將參數(shù)值傳如SQL語(yǔ)句中,通過(guò)#{userId}進(jìn)行取值給SQL的參數(shù)賦值。

2、實(shí)例:

實(shí)例一:@Param注解基本類型的參數(shù)

mapper中的方法:

public User selectUser(@Param("userName") String name,@Param("password") String pwd);

映射到xml中的<select>標(biāo)簽

<select id="selectUser" resultMap="User">  
   select * from user  where user_name = #{userName} and user_password=#{password}  
</select>

其中where user_name = #{userName} and user_password = #{password}中的userName和password都是從注解@Param()里面取出來(lái)的,取出來(lái)的值就是方法中形式參數(shù) String name 和 String pwd的值。

實(shí)例二:@Param注解JavaBean對(duì)象

SQL語(yǔ)句通過(guò)@Param注解中的別名把對(duì)象中的屬性取出來(lái)然后復(fù)制

mapper中的方法: 

public List<User> getAllUser(@Param("user") User u);

映射到xml中的<select>標(biāo)簽

<select id="getAllUser" parameterType="com.vo.User" resultMap="userMapper">  
        select   
        from user t where 1=1  
             and   t.user_name = #{user.userName}  
              and   t.user_age = #{user.userAge}  
    </select>  

3、注意點(diǎn)

當(dāng)使用了@Param注解來(lái)聲明參數(shù)的時(shí)候,SQL語(yǔ)句取值使用#{},${}取值都可以。

當(dāng)不使用@Param注解聲明參數(shù)的時(shí)候,必須使用的是#{}來(lái)取參數(shù)。使用${}方式取值會(huì)報(bào)錯(cuò)。

不使用@Param注解時(shí),參數(shù)只能有一個(gè),并且是Javabean。在SQL語(yǔ)句里可以引用JavaBean的屬性,而且只能引用JavaBean的屬性。

    @Select("SELECT * from Table where id = #{id}")
    Enchashment selectUserById(User user);

附:為什么要用@param

首先解釋一下為毛要用這個(gè)東西

當(dāng)在查詢的時(shí)候,一個(gè)參數(shù)的時(shí)候,在直接在入?yún)⒅袑懭刖涂梢粤耍钱?dāng)兩個(gè)參數(shù)的時(shí)候,怎么辦?

兩種辦法:第一用Map ,第二:就用@param,[可讀性比較好,參數(shù)少的時(shí)候]

注意:當(dāng)參數(shù)為2-5個(gè)時(shí)候,用@param最佳,當(dāng)大于5的時(shí)候,肯定會(huì)選擇map了

舉例說(shuō)明:

<select id="findRoleByMap" parameterType="map" resultType="role">
    SELECT id,name FROM t_role
    WHERE roleName=#{roleName}
    AND note=#{note}
<select>

總結(jié)

到此這篇關(guān)于Mybatis中@Param注解用法的文章就介紹到這了,更多相關(guān)@Param注解用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot中如何指定某些接口不被攔截

    springboot中如何指定某些接口不被攔截

    這篇文章主要為大家詳細(xì)介紹了springboot中如何指定某些接口不被攔截,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • Java中的這些騷操作你不能不知道!!!

    Java中的這些騷操作你不能不知道!!!

    今天在看python相關(guān)的東西,看到各種騷操作,回頭想了下Java有沒(méi)有什么騷操作,整理下面幾種,一起看一下吧,希望能給你帶來(lái)幫助
    2021-07-07
  • jvm虛擬機(jī)類加載機(jī)制詳解

    jvm虛擬機(jī)類加載機(jī)制詳解

    本文主要介紹了 jvm虛擬機(jī)類加載機(jī)制詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Java?C++刷題leetcode1106解析布爾表達(dá)式

    Java?C++刷題leetcode1106解析布爾表達(dá)式

    這篇文章主要為大家介紹了Java?C++刷題leetcode1106解析布爾表達(dá)式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 18個(gè)Java8日期處理的實(shí)踐(太有用了)

    18個(gè)Java8日期處理的實(shí)踐(太有用了)

    這篇文章主要介紹了18個(gè)Java8日期處理的實(shí)踐(太有用了),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Java中-Xms和-Xmx參數(shù)的使用與默認(rèn)內(nèi)存設(shè)置

    Java中-Xms和-Xmx參數(shù)的使用與默認(rèn)內(nèi)存設(shè)置

    在 Java 程序運(yùn)行時(shí),內(nèi)存的管理是影響程序性能的關(guān)鍵因素之一,Java 程序使用的內(nèi)存主要由兩部分組成:堆內(nèi)存和棧內(nèi)存,Java 提供了多個(gè)參數(shù)來(lái)控制堆內(nèi)存的大小,其中最常用的參數(shù)是 -Xms 和 -Xmx,本文將詳細(xì)介紹這些參數(shù),需要的朋友可以參考下
    2024-11-11
  • Java中l(wèi)ist.contains()的用法及拓展

    Java中l(wèi)ist.contains()的用法及拓展

    List集合相信大家在開(kāi)發(fā)過(guò)程中幾乎都會(huì)用到,有時(shí)候難免會(huì)遇到集合里的數(shù)據(jù)是重復(fù)的,需要進(jìn)行去除,下面這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ist.contains()的用法及拓展的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • SpringMVC攔截器的實(shí)現(xiàn)和作用及Redis登陸功能的優(yōu)化詳解

    SpringMVC攔截器的實(shí)現(xiàn)和作用及Redis登陸功能的優(yōu)化詳解

    這篇文章主要介紹了Java項(xiàng)目SpringMVC攔截器+Redis優(yōu)化登錄功能實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring框架作為一個(gè)輕量級(jí)的開(kāi)源框架,在企業(yè)應(yīng)用開(kāi)發(fā)中被廣泛使用,在Spring事務(wù)管理中,事務(wù)傳播行為是非常重要的一部分,它定義了方法如何參與到已經(jīng)存在的事務(wù)中或者如何開(kāi)啟新的事務(wù),本文將詳細(xì)介紹Spring事務(wù)中的幾種事務(wù)傳播行為,詳細(xì)講解具體使用方法
    2023-06-06
  • 基于SpringBoot+Mybatis實(shí)現(xiàn)Mysql分表

    基于SpringBoot+Mybatis實(shí)現(xiàn)Mysql分表

    這篇文章主要為大家詳細(xì)介紹了基于SpringBoot+Mybatis實(shí)現(xiàn)Mysql分表的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04

最新評(píng)論

阳山县| 和政县| 通山县| 绵竹市| 西贡区| 利津县| 中西区| 福安市| 南部县| 洛川县| 武强县| 于田县| 亚东县| 鄂尔多斯市| 靖远县| 石嘴山市| 莫力| 浦江县| 吴旗县| 临西县| 香格里拉县| 阿城市| 浮梁县| 定结县| 姜堰市| 新竹县| 吉水县| 赫章县| 双牌县| 佛冈县| 贡嘎县| 怀集县| 北安市| 榕江县| 海口市| 浮梁县| 调兵山市| 新建县| 黑水县| 德化县| 泽州县|