mybatis sql in 查询

1. 当查询的参数只有一个时
 findByIds(List<Long> ids)
1.1 若是参数的类型是List, 则在使用时,collection属性要必须指定为 listjava

Xml代码 复制代码 收藏代码app

  1. <select id="findByIdsMap" resultMap="BaseResultMap">code

  2. Select  xml

  3. <include refid="Base_Column_List" />blog

  4. from jria where ID in  get

  5. <foreach item="item" index="index" collection="list" open="(" separator="," close=")">it

  6.  #{item}  io

  7. </foreach>class

  8. </select>test

<select id="findByIdsMap" resultMap="BaseResultMap">
 Select
 <include refid="Base_Column_List" />
 from jria where ID in
 <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
  #{item}
 </foreach>
</select>



findByIds(Long[] ids)
1.2 若是参数的类型是Array,则在使用时,collection属性要必须指定为 array

Xml代码 复制代码 收藏代码

  1. <select id="findByIdsMap" resultMap="BaseResultMap">

  2. select  

  3. <include refid="Base_Column_List" />

  4. from tabs where ID in  

  5. <foreach item="item" index="index" collection="array" open="(" separator="," close=")">

  6. #{item}  

  7. </foreach>

  8.   </select>

 <select id="findByIdsMap" resultMap="BaseResultMap">
 select
 <include refid="Base_Column_List" />
 from tabs where ID in
 <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
  #{item}
 </foreach>
    </select>


2. 当查询的参数有多个时,例如 findByIds(String name, Long[] ids)
这种状况须要特别注意,在传参数时,必定要改用Map方式, 这样在collection属性能够指定名称
        下面是一个示例
        Map<String, Object> params = new HashMap<String, Object>(2);
        params.put("name", name);
        params.put("ids", ids);
       mapper.findByIdsMap(params);

Xml代码 复制代码 收藏代码

     

<select id="findByIdsMap" resultMap="BaseResultMap">
 select
 <include refid="Base_Column_List" />
 from tabs where <if test="_parameter.containsKey('ids')"> ID in
 <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
  #{item}
 </foreach>
</if><if test="_parameter.containsKey('issue')">name=#{name}</if></select>
相关文章
相关标签/搜索