国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - MyBatis傳入集合 list 數(shù)組 map參數(shù)的寫法

MyBatis傳入集合 list 數(shù)組 map參數(shù)的寫法

2020-05-21 11:35aliveClass JAVA教程

這篇文章主要介紹了MyBatis傳入集合 list 數(shù)組 map參數(shù)的寫法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

foreach的主要用在構(gòu)建in條件中,它可以在SQL語(yǔ)句中進(jìn)行迭代一個(gè)集合。foreach元素的屬性主要有item,index,collection,open,separator,close。item表示集合中每一個(gè)元素進(jìn)行迭代時(shí)的別名,index指定一個(gè)名字,用于表示在迭代過(guò)程中,每次迭代到的位置,open表示該語(yǔ)句以什么開(kāi)始,separator表示在每次進(jìn)行迭代之間以什么符號(hào)作為分隔符,close表示以什么結(jié)束,在使用foreach的時(shí)候最關(guān)鍵的也是最容易出錯(cuò)的就是collection屬性,該屬性是必須指定的,但是在不同情況下,該屬性的值是不一樣的,主要有一下3種情況:
如果傳入的是單參數(shù)且參數(shù)類型是一個(gè)List的時(shí)候,collection屬性值為list .

如果傳入的是單參數(shù)且參數(shù)類型是一個(gè)array數(shù)組的時(shí)候,collection的屬性值為array .

如果傳入的參數(shù)是多個(gè)的時(shí)候,我們就需要把它們封裝成一個(gè)Map了,當(dāng)然單參數(shù)也可以封裝成map,實(shí)際上如果你在傳入?yún)?shù)的時(shí)候,在MyBatis里面也是會(huì)把它封裝成一個(gè)Map的,map的key就是參數(shù)名,所以這個(gè)時(shí)候collection屬性值就是傳入的List或array對(duì)象在自己封裝的map里面的key.

下面我們通過(guò)代碼實(shí)踐:

數(shù)據(jù)表:

采用Oracle的HR.Employees表

        實(shí)體:Employees

?
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Employees {
  private Integer employeeId;
  private String firstName;
  private String lastName;
  private String email;
  private String phoneNumber;
  private Date hireDate;
  private String jobId;
  private BigDecimal salary;
  private BigDecimal commissionPct;
  private Integer managerId;
  private Short departmentId;
}

映射文件:

 

?
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
27
28
29
30
31
32
33
34
35
36
37
38
<!--List:forech中的collection屬性類型是List,collection的值必須是:list,item的值可以隨意,Dao接口中參數(shù)名字隨意 -->
<select id="getEmployeesListParams" resultType="Employees">
  select *
  from EMPLOYEES e
  where e.EMPLOYEE_ID in
  <foreach collection="list" item="employeeId" index="index"
    open="(" close=")" separator=",">
    #{employeeId}
  </foreach>
</select>
<!--Array:forech中的collection屬性類型是array,collection的值必須是:list,item的值可以隨意,Dao接口中參數(shù)名字隨意 -->
<select id="getEmployeesArrayParams" resultType="Employees">
  select *
  from EMPLOYEES e
  where e.EMPLOYEE_ID in
  <foreach collection="array" item="employeeId" index="index"
    open="(" close=")" separator=",">
    #{employeeId}
  </foreach>
</select>
 
<!--Map:不單單forech中的collection屬性是map.key,其它所有屬性都是map.key,比如下面的departmentId -->
<select id="getEmployeesMapParams" resultType="Employees">
  select *
  from EMPLOYEES e
  <where>
    <if test="departmentId!=null and departmentId!=''">
      e.DEPARTMENT_ID=#{departmentId}
    </if>
    <if test="employeeIdsArray!=null and employeeIdsArray.length!=0">
      AND e.EMPLOYEE_ID in
      <foreach collection="employeeIdsArray" item="employeeId"
        index="index" open="(" close=")" separator=",">
        #{employeeId}
      </foreach>
    </if>
  </where>
</select>

Mapper類:

?
1
2
3
4
5
public interface EmployeesMapper {
  List<Employees> getEmployeesListParams(List<String> employeeIds);
  List<Employees> getEmployeesArrayParams(String[] employeeIds);
  List<Employees> getEmployeesMapParams(Map<String,Object> params);
}

以上所述是小編給大家介紹的MyBatis傳入集合 list 數(shù)組 map參數(shù)的寫法的全部敘述,希望對(duì)大家有所幫助!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产黄色在线网站 | 国产一级在线免费观看 | 精品日韩 | www.青青草 | 一区二区三区欧美 | 色综合色综合网色综合 | 久久91| 欧美日韩国产影院 | 成人国产精品 | 美女羞羞网站 | 一级黄片毛片免费看 | 91精品国产乱码久 | 成人在线激情网 | 午夜激情在线免费观看 | 成人在线视频免费观看 | 五月天综合网 | 国产专区在线 | 精品自拍视频在线观看 | 黄久久久 | 蜜桃精品一区二区 | av看片网 | www.亚洲精品| 成人欧美一区二区三区在线观看 | 日韩精品一区二区在线观看 | 亚洲精品欧美精品 | 91亚洲国产 | 欧美大片免费影院在线观看 | porn在线 | 亚洲在线视频 | 日本精品免费 | 亚洲精品白浆高清久久久久久 | 亚洲成av人片在线观看无 | 韩国精品 | 99pao成人国产永久免费视频 | 国内精品久久久 | 中文字幕在线影院 | 在线观看黄色电影 | 欧美一级免费看 | 成人精品一区 | 免费精品视频 | 三级黄色片在线免费观看 |