欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis(ParameterType)傳遞多個不同類型的參數(shù)方式

 更新時間:2023年04月08日 14:05:13   作者:ITKEY_  
這篇文章主要介紹了Mybatis(ParameterType)傳遞多個不同類型的參數(shù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis傳遞多個不同類型的參數(shù)

在一些場景下,傳參是需要多個參數(shù)的。一個參數(shù)不太夠用,如:parameterType="ImGroup"。

最開始的想法是封裝一個專用用來當(dāng)參數(shù)的對象,把多個對象包裝到一起,這樣就要以實(shí)現(xiàn)多個參數(shù)的傳遞。

但是總感覺這樣的方法太笨了,而且封裝的對象有可能只能在參數(shù)這塊用一下,重用性不高。還會導(dǎo)致項(xiàng)目中多一個類文件。

那么應(yīng)該還可以使用map或者list封裝對象。但是畢竟集合的可變性比較高,使用起來又沒有類方便。

比起這些思路,我感覺注解的方式最方便。

基于注解

public List<ImGroup> selectImGroupListByUserId(@Param("userId")String userId, @Param("group") ImGroup imGroup);

去掉parameterType屬性。

這里ImGroup 是一個對象,里面有一堆屬性,比如:name

<select id="getXXXBeanList" resultType="XXBean">
  select t.* from tableName where id = #{userId} and name = #{group.name} ?
</select> ?

由于是多參數(shù)那么就不能使用parameterType, 這里用@Param來指定哪一個

我的實(shí)際代碼如下 :

ImGroupMapper.java

? ?/**
? ? ?* 通過UserId來查詢
? ? ?* @param imGroup
? ? ?* @return
? ? ?*/
? ? public List<ImGroup> selectImGroupListByUserId(@Param("userId")String userId, @Param("group") ImGroup imGroup);

ImGroupMapper.xml

?<select id="selectImGroupListByUserId" resultMap="ImGroupResult">
? ? ? ? select g.* from im_group_user gu left join im_group g on gu.group_id=g.group_id
? ? ? ? <where>
? ? ? ? ? ? gu.user_id=#{userId}
? ? ? ? ? ? <if test="group.userCount != null "> and g.user_count = #{group.userCount}</if>
? ? ? ? ? ? <if test="group.groupName != null ?and group.groupName != ''"> and g.group_name like concat('%', #{group.groupName}, '%')</if>
? ? ? ? ? ? <if test="group.groupIntroduction != null ?and group.groupIntroduction != ''"> and g.group_introduction = #{group.groupIntroduction}</if>
? ? ? ? ? ? <if test="group.groupPortrait != null ?and group.groupPortrait != ''"> and g.group_portrait = #{group.groupPortrait}</if>
? ? ? ? ? ? <if test="group.groupOwner != null ?and group.groupOwner != ''"> and g.group_owner = #{group.groupOwner}</if>
? ? ? ? ? ? <if test="group.groupManager != null ?and group.groupManager != ''"> and g.group_manager = #{group.groupManager}</if>
? ? ? ? </where>
? ? </select>

Mybatis傳遞單個String類型的參數(shù)

使用mybatis接口參數(shù)只有一個string的時候 如果不指定@Param 的話mybatis去會把parameterType參數(shù)默認(rèn)成接口的參數(shù)類型然后對于xml里的#{a}參數(shù) 去調(diào)用該類型下參數(shù)a 的get/set方法然后就報(bào)錯了。

使用了@Param注解 mybatis就會一一對應(yīng)賦值就不會導(dǎo)致這個錯誤。

接口如下:

在這里插入圖片描述

xml文件如下:

在這里插入圖片描述

報(bào)錯如下:

在這里插入圖片描述

改成如下就可以了:

在這里插入圖片描述

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot如何實(shí)現(xiàn)同域SSO(單點(diǎn)登錄)

    SpringBoot如何實(shí)現(xiàn)同域SSO(單點(diǎn)登錄)

    單點(diǎn)登錄(SingleSignOn,SSO),就是通過用戶的一次性鑒別登錄。即在多個應(yīng)用系統(tǒng)中,只需要登錄一次,就可以訪問其他相互信任的應(yīng)用系統(tǒng),本文將介紹SpringBoot如何實(shí)現(xiàn)同域SSO(單點(diǎn)登錄)
    2021-05-05
  • Mybatis-Plus批量插入用法詳解

    Mybatis-Plus批量插入用法詳解

    mybatis-plus的IService接口默認(rèn)提供saveBatch批量插入,也是唯一一個默認(rèn)批量插入,在數(shù)據(jù)量不是很大的情況下可以直接使用,但這種是一條一條執(zhí)行的效率上會有一定的瓶頸,今天我們就來研究研究mybatis-plus中的批量插入
    2023-02-02
  • idea更改項(xiàng)目(模塊)JDK版本的操作步驟

    idea更改項(xiàng)目(模塊)JDK版本的操作步驟

    idea很多地方都設(shè)置了jdk版本,不同模塊的jdk版本也可能不一樣,下面這篇文章主要給大家介紹了關(guān)于idea更改項(xiàng)目(模塊)JDK版本的操作步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Spring SpringMVC在啟動完成后執(zhí)行方法源碼解析

    Spring SpringMVC在啟動完成后執(zhí)行方法源碼解析

    這篇文章主要介紹了SpringMVC在啟動完成后執(zhí)行方法源碼解析,還是非常不錯的,在這里分享給大家,需要的朋友可以參考下。
    2017-09-09
  • IDEA錯誤:找不到或無法加載主類的完美解決方法

    IDEA錯誤:找不到或無法加載主類的完美解決方法

    使用IDEA開始就一直在搭建java環(huán)境,許久沒有使用過java,剛開始有些生疏,先建了一個最簡單的類可是運(yùn)行的時候出現(xiàn)錯誤:找不到或無法加載主類,下面這篇文章主要給大家介紹了關(guān)于IDEA錯誤:找不到或無法加載主類的完美解決方法,需要的朋友可以參考下
    2022-07-07
  • Mybatis中的config.xml配置文件詳細(xì)解析

    Mybatis中的config.xml配置文件詳細(xì)解析

    這篇文章主要介紹了詳解Mybatis-config.xml配置文件,需要的朋友可以參考下
    2017-12-12
  • Spring Boot的listener(監(jiān)聽器)簡單使用實(shí)例詳解

    Spring Boot的listener(監(jiān)聽器)簡單使用實(shí)例詳解

    監(jiān)聽器(Listener)的注冊方法和 Servlet 一樣,有兩種方式:代碼注冊或者注解注冊。接下來通過本文給大家介紹Spring Boot的listener(監(jiān)聽器)簡單使用,需要的朋友可以參考下
    2017-04-04
  • Java ES(Elasticsearch) 中的and 和 or 查詢

    Java ES(Elasticsearch) 中的and 和 or 查

    Elasticsearch 是一個分布式、高擴(kuò)展、高實(shí)時的搜索與數(shù)據(jù)分析引擎,es中match查詢中,查詢字符串分詞后,默認(rèn)是or或者的關(guān)系,這篇文章主要介紹了ES 中的and 和 or 查詢,需要的朋友可以參考下
    2022-11-11
  • 這么優(yōu)雅的Java ORM沒見過吧!

    這么優(yōu)雅的Java ORM沒見過吧!

    這篇文章主要介紹了Java ORM的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • Spring MVC中自定義攔截器的實(shí)例講解

    Spring MVC中自定義攔截器的實(shí)例講解

    下面小編就為大家?guī)硪黄猄pring MVC中自定義攔截器的實(shí)例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論