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

mybatis條件語句中帶數(shù)組參數(shù)的處理

 更新時(shí)間:2021年09月11日 09:34:26   作者:luffy5459  
這篇文章主要介紹了mybatis條件語句中帶數(shù)組參數(shù)的處理方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis條件語句中帶數(shù)組參數(shù)

如題,在mybatis編寫sql語句的時(shí)候,可能會遇到in這樣的關(guān)鍵字,我們知道in后面需要接上('a','b','c')這樣的一個(gè)結(jié)構(gòu)。它像一個(gè)數(shù)組,但是是用括號()包裹的,參數(shù)之間還有逗號隔開。

這里因?yàn)閿?shù)組參數(shù)是變量,直接通過拼接的方式不可行。

這里需要一個(gè)標(biāo)簽foreach,標(biāo)簽可以有item,collection,open,close,separator等屬性,分別表示變量,變量集合,開始符號,結(jié)束符號,分隔符。

這里給出一個(gè)示例

定義返回對象

<resultMap type="com.xxx.springmybatis.domain.User" id="UserResult">
  <id column="id" jdbcType="BIGINT" property="id"/>
  <result column="name" jdbcType="VARCHAR" property="name"/>
  <result column="email" jdbcType="VARCHAR" property="email"/>
</resultMap>

編寫sql語句

<select id="findByIds" resultMap="UserResult" parameterType="list">
     select * from users
     where id in
     <foreach collection="list" item="id" open="(" close=")" separator=",">
      #{id,jdbcType=BIGINT}
     </foreach>
</select>

定義dao方法:

package com.xxx.springmybatis.dao;
import java.util.List;
import com.xxx.springmybatis.domain.User;
public interface UserMapper {
    User getById(Integer id);
    User getByName(String name);
    void save(User user);    
    List<User> findByIds(List<Integer> ids);
}

以上的示例,是通過id數(shù)組來查詢對應(yīng)的用戶集合。我們傳入的用戶ID,最終在sql中會通過拼接的方式組成where id in (3,4)的條件。

如下所示,如果要查詢id為3,4的用戶,那么打印的sql語句可以看出拼接的樣子:

這里有必要說明的是foreach標(biāo)簽中的collection屬性

1、List集合,默認(rèn)使用list代表入?yún)?,?shù)組,默認(rèn)使用array作為入?yún)ⅰ?/p>

2、如果傳入的參數(shù)是一個(gè)對象,對象User有個(gè)屬性List ids,那么就使用ids作為入?yún)ⅰ?/p>

3、如果接口聲明的地方通過注解@Param("xx")指定了入?yún)?,那么list,array這種默認(rèn)的參數(shù)就失效,這時(shí)候需要指定xx為入?yún)ⅰ?/p>

本例中因?yàn)槭褂玫氖荓ist集合傳入,所以默認(rèn)就使用了list作為collection入?yún)⒌逆I。

mybatis多參數(shù)傳遞(其中包括數(shù)組)

mapper接口

public void batchDelete(@Param(value = "activityId") Integer activityId, @Param(value = "userIds") Integer[] userIds);

mapper.xml的配置

<insert id="batchDelete">
     delete from T_ACT_USERS where ACTIVITY_ID = #{activityId}
     and USER_ID in
     <foreach collection="userIds" item="item" index="index" open="(" separator="," close=")">
            #{item}
     </foreach>
</insert>

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

相關(guān)文章

  • 如何安裝java的運(yùn)行環(huán)境IDEA

    如何安裝java的運(yùn)行環(huán)境IDEA

    這篇文章主要介紹了如何安裝java的運(yùn)行環(huán)境IDEA,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Springboot實(shí)現(xiàn)自定義錯(cuò)誤頁面的方法(錯(cuò)誤處理機(jī)制)

    Springboot實(shí)現(xiàn)自定義錯(cuò)誤頁面的方法(錯(cuò)誤處理機(jī)制)

    這篇文章主要介紹了Springboot實(shí)現(xiàn)自定義錯(cuò)誤頁面的方法(錯(cuò)誤處理機(jī)制),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java安全-ClassLoader

    Java安全-ClassLoader

    這篇文章主要介紹了Java安全ClassLoader,Java類初始化的時(shí)候會調(diào)用java.lang.ClassLoader加載字節(jié)碼,ClassLoader就是用來動態(tài)加載class文件到內(nèi)存當(dāng)中用的,下面詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • springboot+vue實(shí)現(xiàn)SSE服務(wù)器發(fā)送事件的示例

    springboot+vue實(shí)現(xiàn)SSE服務(wù)器發(fā)送事件的示例

    本文介紹了使用Spring Boot和Vue實(shí)現(xiàn)服務(wù)器發(fā)送事件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • java常用工具類 IP、File文件工具類

    java常用工具類 IP、File文件工具類

    這篇文章主要為大家詳細(xì)介紹了java常用工具類,包括IP、File文件工具類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • RocketMQ消息過濾與查詢的實(shí)現(xiàn)

    RocketMQ消息過濾與查詢的實(shí)現(xiàn)

    這篇文章主要介紹了RocketMQ消息過濾與查詢的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 淺談java中的對象、類、與方法的重載

    淺談java中的對象、類、與方法的重載

    本文主要對java中的對象、類、與方法的重載進(jìn)行簡要概述,具有一定的參考價(jià)值,需要的朋友一起來看下吧
    2016-12-12
  • SpringMVC上傳圖片與訪問

    SpringMVC上傳圖片與訪問

    這篇文章主要介紹了SpringMVC上傳圖片與訪問的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 完美解決Spring Boot前端的Access-Control-Allow-Origin跨域問題

    完美解決Spring Boot前端的Access-Control-Allow-Origin跨域問題

    這篇文章主要介紹了完美解決Spring Boot前端的Access-Control-Allow-Origin跨域問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)一個(gè)簡單的長輪詢的示例代碼

    Java實(shí)現(xiàn)一個(gè)簡單的長輪詢的示例代碼

    長輪詢是與服務(wù)器保持即時(shí)通信的最簡單的方式,它不使用任何特定的協(xié)議,例如 WebSocket ,所以也不依賴于瀏覽器版本等外部條件的兼容性。本文將用Java實(shí)現(xiàn)一個(gè)簡單的長輪詢,需要的可以參考一下
    2022-08-08

最新評論

教育| 洛浦县| 英德市| 高尔夫| 绥德县| 墨江| 柳林县| 潞西市| 普陀区| 犍为县| 南昌县| 红原县| 烟台市| 吉木乃县| 贡山| 桐城市| 泗阳县| 遂平县| 道孚县| 乳源| 武宁县| 富裕县| 霍林郭勒市| 宁海县| 江阴市| 汉沽区| 宜宾市| 江达县| 徐闻县| 长春市| 本溪| 确山县| 宁武县| 庆城县| 定日县| 舒城县| 南投市| 陆丰市| 泰和县| 托克托县| 墨竹工卡县|