<!--根据user进行查询,动态SQL if标签--><!--当参数内有值时才作为查询条件--><selectid="findByUser"resultType="user"parameterType="user">
select * from user
<!--动态添加where关键字--><where><iftest="id!=0">
and id = #{id}
</if><iftest="name!=null">
and name = #{name}
</if><iftest="password">
and password = #{password}
</if></where></select>
@TestpublicvoidtestFindByUser(){
user.setId(1234567805);
user.setName("老七");
user.setPassWord("123456");List<User> list = userXmlMapper.findByUser(user);System.out.println(list);}
foreach标签
UserMapper.xml
<!--利用list装入多个id值进行查询,动态SQL foreach标签--><selectid="findByIds"parameterType="list"resultType="user">
select * from user
<where><!--open是开始部分语句,close则是关闭部分语句,separator是分隔符--><foreachcollection="list"open="id in("close=")"item="id"separator=",">
#{id}
</foreach></where></select>
@TestpublicvoidtestFindByIds(){List<Integer> ids =newArrayList<Integer>();
ids.add(1234567801);
ids.add(1234567802);
ids.add(1234567803);List<User> list = userXmlMapper.findByIds(ids);System.out.println(list);}
SQL片段抽取
<!--SQL语句的抽取--><sqlid="selectUser"> select * from user </sql><!--查询操作--><selectid="findAll"resultType="user"><!--select * from user--><includerefid="selectUser"></include></select>