发布时间: 2018-09-19 23:12:38
if:
就是简单的条件判断,利用if语句我们可以实现某些简单的条件选择。
List<Stu> getAll(Stu stu);
<select id="getAll" resultType="net.togogo.bean.Stu">
select * from t_stu where 1=1
<if test="name!=null">
and name = #{name}
</if>
</select>
@Test
public void selectAll(){
SqlSession session = sessionFactory.openSession();
Stu stu = new Stu();
stu.setName("刘备");
List<Stu> stus =
session.selectList("net.togogo.mapper.StuMapper.getAll",stu);
stus.stream().forEach(System.out::println);
session.close();
}
如果你提供了title参数,那么就要满足title=#{title},同样如果你提供了Content和Owner的时候,它们也需要满足相应的条件,之后就是返回满足这些条件的所有Blog,这是非常有用的一个功能,以往我们使用其他类型框架或者直接使用JDBC的时候, 如果我们要达到同样的选择效果的时候,我们就需要拼SQL语句,这是极其麻烦的,比起来,上述的动态SQL就要简单多了。
choose:
元素的作用就相当于JAVA中的switch语句,基本上跟JSTL中的choose的作用和用法是一样的,通常都是与when和otherwise搭配的。
List<Stu> getChoose(Stu stu);
<select id="getChoose" resultType="net.togogo.bean.Stu">
select * from t_stu where 1=1
<choose>
<when test="name!=null">
and name= #{name}
</when>
<when test="id!=0">
and id = #{id}
</when>
<otherwise>
and name = "程咬金"
</otherwise>
</choose>
</select>
@Test
public void getChoose(){
SqlSession session = sessionFactory.openSession();
Stu stu = new Stu();
stu.setName("刘备");
List<Stu> stus =
session.selectList("net.togogo.mapper.StuMapper.getChoose",stu);
stus.stream().forEach(System.out::println);
session.close();
}
content = #{content},当所有条件都不满足的时候就输出otherwise中的内容。