發布時間: 2018-09-26 16:16:06
?語句的作用主要是簡化SQL語句中where中的條件判斷的;
List<Stu> getWhere(Stu stu);
<select id="getWhere" resultType="net.togogo.bean.Stu">
select * from t_stu
<where>
<if test="name!=null">
name = #{name}
</if>
</where>
</select>
@Test
public void getWhere(){
SqlSession session = sessionFactory.openSession();
Stu stu = new Stu();
stu.setName("張飛");
List<Stu> stus =
session.selectList("net.togogo.mapper.StuMapper.getWhere",stu);
stus.stream().forEach(System.out::println);
session.close();
}
where元素的作用是會在寫入where元素的地方輸出一個where,另外一個好處是你不需要考慮where元素里面的條件輸出是什么樣子的,MyBatis會智能的幫你處理,如果所有的條件都不滿足那么MyBatis就會查出所有的記錄,如果輸出后是and
開頭的,MyBatis會把第一個and忽略,當然如果是or開頭的,MyBatis也會把它忽略;此外,在where元素中你不需要考慮空格的問題,MyBatis會智能的幫你加上。像上述例子中,如果title=null, 而content != null,那么輸出的整個語句會是select * from t_blog where content = #{content},而不是select * from t_blog where and content =
#{content},因為MyBatis會智能的把首個and 或 or 給忽略。
trim:元素的主要功能是可以在自己包含的內容前加上某些前綴,也可以在其后加上某些后綴,與之對應的屬性是prefix和suffix;可以把包含內容的首部某些內容覆蓋,即忽略,也可以把尾部的某些內容覆蓋,對應的屬性是prefixOverrides和suffixOverrides;正因為trim有這樣的功能,所以我們也可以非常簡單的利用trim來代替where元素的功能?;
List<Stu> getTrim(Stu stu);
<select id="getTrim" resultType="net.togogo.bean.Stu">
select * from t_stu
<trim prefix="where" prefixOverrides="and|or" suffix="">
<if test="name!=null">
and name = #{name}
</if>
<if test="id!=0">
and id =#{id}
</if>
</trim>
</select>
@Test
public void getTrim(){
SqlSession session = sessionFactory.openSession();
Stu stu = new Stu();
stu.setName("張飛");
stu.setId(1);
List<Stu> stus =
session.selectList("net.togogo.mapper.StuMapper.getTrim",stu);
stus.stream().forEach(System.out::println);
session.close();
}
?
上一篇: {Gitee}版本控制工具
下一篇: {HTML5}基礎核心-第二節-下