好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

mybatis的动态sql详解(精)

MyBatis 的一个强大的特性之一通常是它的动态 SQL 能力。如果你有使用 JDBC 或其他 相似框架的经验,你就明白条件地串联 SQL 字符串在一起是多么的痛苦,确保不能忘了空 格或在列表的最后省略逗号。动态 SQL 可以彻底处理这种痛苦。

通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强大的动态SQL语言来改进这种情形,这种语言可以被用在任意映射的SQL语句中。

动态SQL元素和使用 JSTL或其他相似的基于XML的文本处理器相似。在MyBatis之前的版本中,有很多的元素需要来了解。MyBatis3大大提升了它们,现在用不到原先一半 的元素就能工作了。MyBatis采用功能强大的基于OGNL的表达式来消除其他元素。

MyBatis中用于实现动态SQL的元素主要有:

if

choose(when,otherwise)

trim

where

set

foreach

if就是简单的条件判断,利用if语句我们可以实现某些简单的条件选择。

先来看如下一个例子:

Xml代码

<select id="dynamicIfTest" parameterType="Blog" resultType="Blog"> 
 select * from t_blog where 11 = 1 
 <if test="title != null"> 
  and title = #{title} 
 </if> 
 <if test="content != null"> 
  and content = #{content} 
 </if> 
 <if test="owner != null"> 
  and owner = #{owner} 
 </if> 
</select> 

查看更多关于mybatis的动态sql详解(精)的详细内容...

  阅读:51次