激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - mybatis 查詢sql中in條件用法詳解(foreach)

mybatis 查詢sql中in條件用法詳解(foreach)

2021-08-03 11:07ya_ya_tou Java教程

這篇文章主要介紹了mybatis 查詢sql中in條件用法詳解(foreach),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

foreach屬性主要有item,index,collection,open,separator,close

1、item表示集合中每一個元素進行迭代時的別名,

2、index指定一個名字,用于表示在迭代過程中,每次迭代到的位置,

3、open表示該語句以什么開始,

4、separator表示在每次進行迭代之間以什么符號作為分隔符,

5、close表示以什么結束,

6、collection屬性,該屬性是必須指定的,但是在不同情況下,該屬性的值是不一樣的,

主要有一下3種情況:

a、如果傳入的是單參數且參數類型是一個List的時候,collection屬性值為list .

b、如果傳入的是單參數且參數類型是一個array數組的時候,collection的屬性值為array .

c、如果傳入的參數是多個的時候,我們就需要把它們封裝成一個Map了,當然單參數也可以封裝成map,實際上如果你在傳入參數的時候,在MyBatis里面也是會把它封裝成一個Map的,map的key就是參數名,所以這個時候collection屬性值就是傳入的List或array對象在自己封裝的map里面的key.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<select id="findBy" resultMap="RfCustomerMemMap" parameterType="java.util.Map">
  SELECT
  <include refid="Column"/>
  FROM rfl_customer_mem a LEFT JOIN rfl_loan b ON a.member_no = b.loan_member_no
  WHERE a.member_no = #{memberNo} AND b.status IN
  <foreach collection="status" index="index" item="item" open="(" separator="," close=")">
   #{item}
  </foreach>
  <if test="name != null and name != ''">
   AND name = #{name}
  </if>
  <if test="idNumber != null and idNumber != ''">
   AND id_number = #{idNumber}
  </if>
  <if test="mobileNo != null and mobileNo != ''">
   AND mobile_no = #{mobileNo}
  </if>
  <if test="loanNo != null and loanNo != ''">
   AND loan_no = #{loanNo}
  </if>
  order by a.id DESC
  <if test="offset > -1 and rows > -1">
   limit #{offset},#{limit}
  </if>
 </select>

java調用查詢sql代碼

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public List<LoanMerchantMemEntity> findMerchantMemBy(String merchantName, String merchantNo, String socialCreditCode, String loanNo, int offset, int limit) {
  List<LoanMerchantMemEntity> list = new ArrayList<LoanMerchantMemEntity>();
  Map<String, Object> filter = new HashMap<String, Object>();
  filter.put("merchantName", merchantName);
  filter.put("socialCreditCode", socialCreditCode);
  filter.put("status", statsList());
  filter.put("loanNo", loanNo);
  filter.put("offset", offset);
  filter.put("limit", limit);
  filter.put("merchantNo", merchantNo);
 
  try {
   List<LoanMerchantMemEntity> row = loanMerchantMemDao.findBy(filter);
  } catch (Exception e) {
   LOGGER.error(filter, "查詢企業會員信息異常", e);
  }
  return list;
 }
 
 static List<String> statsList(){
  List<String> statusList = new ArrayList<String>();
  statusList.add("SUCCESS");
  statusList.add("DUE");
  statusList.add("OVER");
  return statusList;
 }

其中,map中key為status值類型為list,這種使用場景為第三種,即collection為map中的key值

補充:當傳入一個String數組后,在sql中使用foreach語句實現IN查詢

當我們從前臺傳遞過來的是一個數組是,后臺我們要進行處理, 因為在數據庫中表的字段類型有可能是num 或者varchar;

我這里傳過來的是Map 當然也可以使用request.getparameter("name") 這個name為jsp或者htm頁面中的id所對應的name,

下面代碼中也是的:

?
1
2
3
String name=(String) params.get("name");
String[] hiddens = name.split(",");
params.put("name", hiddens);

當我們經過這一部分的處理后,數據就存入到map中了,傳入參數后進行查詢

AND 條件 in

?
1
2
3
<foreach collection="name" index="index" item="item" open="(" separator="," close=")">
   #{item}
  </foreach>

在sql上面,我們進行查詢的時候就OK啦!

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/aiyawalie/article/details/52954138

延伸 · 閱讀

精彩推薦
  • Java教程JAVA編程實現TCP網絡通訊的方法示例

    JAVA編程實現TCP網絡通訊的方法示例

    這篇文章主要介紹了JAVA編程實現TCP網絡通訊的方法,簡單說明了TCP通訊的原理并結合具體實例形式分析了java實現TCP通訊的步驟與相關操作技巧,需要的朋友可...

    遲做總比不做強3402020-12-09
  • Java教程Java簡單計算圓周率完整示例

    Java簡單計算圓周率完整示例

    這篇文章主要介紹了Java簡單計算圓周率,結合完整實例形式分析了Java計算圓周率的原理與操作技巧,代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考...

    java_zhao336997292021-04-27
  • Java教程spring boot加載第三方jar包的配置文件的方法

    spring boot加載第三方jar包的配置文件的方法

    本篇文章主要介紹了spring boot加載第三方jar包的配置文件的方法,詳細的介紹了spring boot jar包配置文件的方法,具有一定的參考價值,感興趣的小伙伴們可...

    牛奮lch5942021-01-18
  • Java教程spring cloud 之 客戶端負載均衡Ribbon深入理解

    spring cloud 之 客戶端負載均衡Ribbon深入理解

    下面小編就為大家帶來一篇spring cloud 之 客戶端負載均衡Ribbon深入理解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Java教程網5162020-11-13
  • Java教程淺談JAVA工作流的優雅實現方式

    淺談JAVA工作流的優雅實現方式

    這篇文章主要介紹了淺談JAVA工作流的優雅實現方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    一代天驕6752021-06-17
  • Java教程Java 散列存儲詳解及簡單示例

    Java 散列存儲詳解及簡單示例

    這篇文章主要介紹了Java 散列存儲詳解及簡單示例的相關資料,需要的朋友可以參考下...

    java教程網4862020-08-02
  • Java教程Java枚舉使用方法詳解

    Java枚舉使用方法詳解

    這篇文章主要為大家詳細介紹了Java枚舉的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    CSDN鄧帥11422021-01-12
  • Java教程Intellij IDEA創建spring-boot項目的圖文教程

    Intellij IDEA創建spring-boot項目的圖文教程

    本文通過圖文并茂的形式給大家介紹了Intellij IDEA創建spring-boot項目的教程,本文給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友參考下吧...

    回憶成長5462021-03-25
主站蜘蛛池模板: 99精品视频免费看 | 最新se94se在线欧美 | 欧美精品久久久久久久久久 | 国产成人小视频在线观看 | 成人辣文| 国产资源视频在线观看 | 99最新网址 | 黑人一级片 | 欧美爱爱视频网站 | 美女很黄很黄免费的 | 免费激情视频网站 | 99国产精成人午夜视频一区二区 | 欧美一级视频免费看 | 视频一区国产精品 | 午夜视 | 99久久久免费视频 | 色综合欧美 | 又黄又爽免费无遮挡在线观看 | 在线影院av | 色综合久久久久久久久久 | 亚洲午夜久久久久 | 亚洲最大中文字幕 | 欧美成视频在线观看 | 欧美一区二区精品夜夜嗨 | 黄网站色成年大片免费高 | xnxx 日本免费 | 午夜久久久精品一区二区三区 | 亚洲四播房 | 免费黄色小网站 | 国产手机在线视频 | 蜜桃传媒视频麻豆第一区免费观看 | 国产精品久久久久久久久久尿 | 欧美成人免费一区二区三区 | 欧美中文字幕一区二区三区亚洲 | 福利免费在线观看 | 草草久久久 | 国产精品久久久久久久久久 | 亚洲人成在线播放 | 国产毛片网站 | 一级国产精品一级国产精品片 | 九九热精品免费 |