国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 14:08:42
字體:
供稿:網(wǎng)友

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

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

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

下面我們通過代碼實踐:

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

采用Oracle的HR.Employees表

        實體:Employees

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;} 

映射文件:

 

  <!--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類:

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ù)的寫法的全部敘述,希望對大家有所幫助!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新安县| 师宗县| 孙吴县| 隆安县| 龙陵县| 大竹县| 南平市| 山丹县| 邛崃市| 安庆市| 永城市| 金寨县| 盘山县| 莱芜市| 长岛县| 宿迁市| 巴中市| 河北省| 儋州市| 城市| 宁都县| 兴安县| 五寨县| 新兴县| 静乐县| 苗栗市| 长寿区| 宁蒗| 水富县| 镇远县| 昭觉县| 上犹县| 萨迦县| 通辽市| 华阴市| 普兰店市| 察隅县| 博白县| 措勤县| 高陵县| 河池市|