mybatis 动态sql 示例Set,Map.List

Set 1 = new HashSet();
 Set l2 = new HashSet(); 
s2.setUsername('username02');
s3.setUsername('username004');
l1.add(s2);
l2.add(s2);
l2.add(s3);
List i = sysService.testRun06(l1,l2);
System.out.println(i.get(0).getUsername().toString());
(HashSet--------------------------------------------------------------------------------------------)
public List testParamList2(@Param('set1') Set set1,@Param('set2') Set set2);
(HashSet--------------------------------------------------------------------------------------------)

<select id="testParamList2" resultType="com.sly.web.sys.model.SysU">
  select * from testuser
  <where>
    username in

    <foreach item="item" index="0" collection="set2" open="(" separator="," close=")">
        #{item.username}
    </foreach>
  </where>

</select>

(map------------------------------------------------------------------------------------)
 
Map map = new HashMap();
Map map01 = new HashMap();
SysU s = new SysU();
s.setId(14);
s.setSex("0");
map.put("model", s);
map01.put("username", "username");
String address = "address12";
 
(map------------------------------------------------------------------------------------)
 
 
 
 
对应@param("map")   
map是pojo对象  点儿key 获取value值 
例如(SysU s = new SysU();
s.setId(14); 
map.put("model", s); 
    "#{map.model.sex}")  
 
 
简单类型 直接获取key就好例如(#{map01.username})
(map------------------------------------------------------------------------------------)
 
public SysU testParamMapModelResult(@Param("map") Map map,@Param("map01") Map map01,@Param("address") String address);
 
(map------------------------------------------------------------------------------------)


<select id="testParamMapModelResult" resultType="com.sly.web.sys.model.SysU">
    select * from testuser
  <where>
    id=#{map.model.id} and sex = #{map.model.sex} and username=#{map01.username} and address = #{address}
  </where>

</select>

(List------------------------------------------------------------------------------------)
 
List l1 = new ArrayList();
SysU s1 = new SysU();
SysU s2 = new SysU();
SysU s3 = new SysU();
s1.setUsername("username001");
s1.setSex("sex001");
s1.setBirthday("2017-06-05");
s1.setAddress("addredd001");
s2.setUsername("username002");
s2.setSex("sex002");
s2.setBirthday("2017-06-05");
s2.setAddress("addredd002");
s3.setUsername("username003");
s3.setSex("sex003");
s3.setBirthday("2017-06-05");
s3.setAddress("addredd003");
l1.add(s2);
List l2 = new ArrayList();
SysU s4 = new SysU();
l2.add(s4);
s4.setUsername("username004");
s4.setSex("sex004");
s4.setBirthday("2017-06-05");
s4.setAddress("addredd004");
sysService.testRun05(l1,l2);
(List------------------------------------------------------------------------------------)
index  代表循环的次数      
 
collection  代表mapper.java @param 参数指定要循环的list2  (如下)
public Integer testParamListInsert(@Param("list1") List list1,@Param("list2") List list2);
 
item代表的是  取出来的对象   然后 点儿   对象中的属性 就可以取值啦;
  如果是简单类型    对应的item 是依次存入List的 元素值
 
(List------------------------------------------------------------------------------------)

<insert id="testParamListInsert" >
  insert into testuser(username,sex,birthday,address) value
    <foreach item="item" index="index" collection="list2" open="(" separator="," close=")">
      #{item.username}, #{index}, #{item.birthday}, #{item.address}
    </foreach>
</insert>

(List------------------------------------------------------------------------------------)
 
 
原文地址:https://www.cnblogs.com/lize1215/p/7448347.html