亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis條件語句中帶數組參數的處理方式

發布時間:2021-09-13 07:30:54 來源:億速云 閱讀:352 作者:chen 欄目:開發技術

這篇文章主要講解了“mybatis條件語句中帶數組參數的處理方式”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mybatis條件語句中帶數組參數的處理方式”吧!

目錄
  • mybatis條件語句中帶數組參數

    • 這里給出一個示例

    • 這里有必要說明的是foreach標簽中的collection屬性

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

    • mapper接口

    • mapper.xml的配置

mybatis條件語句中帶數組參數

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

這里因為數組參數是變量,直接通過拼接的方式不可行。

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

這里給出一個示例

定義返回對象

<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數組來查詢對應的用戶集合。我們傳入的用戶ID,最終在sql中會通過拼接的方式組成where id in (3,4)的條件。

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

mybatis條件語句中帶數組參數的處理方式

這里有必要說明的是foreach標簽中的collection屬性

1、List集合,默認使用list代表入參,數組,默認使用array作為入參。

2、如果傳入的參數是一個對象,對象User有個屬性List ids,那么就使用ids作為入參。

3、如果接口聲明的地方通過注解@Param("xx")指定了入參,那么list,array這種默認的參數就失效,這時候需要指定xx為入參。

本例中因為使用的是List集合傳入,所以默認就使用了list作為collection入參的鍵。

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

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>

感謝各位的閱讀,以上就是“mybatis條件語句中帶數組參數的處理方式”的內容了,經過本文的學習后,相信大家對mybatis條件語句中帶數組參數的處理方式這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沾化县| 济宁市| 石家庄市| 宣威市| 胶州市| 志丹县| 徐水县| 临沂市| 兴安县| 双桥区| 怀远县| 衡水市| 会东县| 九龙坡区| 巴楚县| 祁连县| 红原县| 枣阳市| 将乐县| 酉阳| 房产| 九龙城区| 保定市| 杂多县| 金堂县| 遵义市| 吕梁市| 曲麻莱县| 城口县| 扎兰屯市| 五华县| 皮山县| 旬邑县| 彰化县| 扶风县| 拉萨市| 马尔康县| 岑巩县| 兰州市| 灵武市| 当雄县|