第 4 章 MyBatis动态SQL

MyBatis 的强大特性之一便是它的动态 SQL。使用过 JDBC 或其他类似框架的人都会知道,根据不同条件拼接 SQL 语句时不仅不能忘了必要的空格,还要注意省略掉列名列表最后的逗号,处理方式麻烦且凌乱。MyBatis 的动态 SQL 则能让我们摆脱这种痛苦。

在 MyBatis 3 之前的版本中,使用动态 SQL 需要学习和了解非常多的标签,现在 MyBatis 采用了功能强大的 OGNL(Object-Graph Navigation Language) 表达式语言消除了许多其他标签,以下是 MyBatis 的动态 SQL 在 XML 中支持的几种标签。

  • if

  • choose(when、otherwise)

  • trim(where、set)

  • foreach

  • bind

本章除了讲解这几种标签的用法外,还会介绍如何在一个 XML 中针对不同的数据库编写不同的 SQL 语句,另外会对这 5 种标签中必须要用到的 OGNL 表达式进行一个简单的介绍。