Mybatis04--动态SQL
前言: 在以前我们使用JDBC或者其它框架时,一件很痛苦的事情是根据不同条件拼接 SQL 语句。拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。然而现在,我们利用动态 SQL 这一特性就可以彻底摆脱这种痛苦。 通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强大的动态SQL语言来改进这种情形,这种语言可以被用在任意映射的SQL语句中。 动态SQL元素和使用JSTL或其它相似的基于XML的文本处理器相似,在MyBatis之前的版本中,有很多元素需要了解,MyBatis3大大地提升了它们,现在用不到原先一半的元素就能工作了,MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。 if: 动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。比如: < select id= "findBlog" resultType= "Blog" > SELECT * FROM BLOG WHERE state = ‘ACTIVE’ < if test= "title != null" > AND title like #{title} </ if > </ select > 这条语句提供了一个可选的文本查找类型的功能。 如果没有传入“title”,那么所有处于“ACTIVE”状态的BLOG都会返回 ;反之若传入了“title”