mybatis动态sql答题.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.? MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。 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?? 这条语句的意思非常简单,如果你提供了title参数,那么就要满足title=#{title},同样如果你提供了Content和 Owner的时候,它们也需要满足相应的条件,之后就是返回满足这些条件的所有Blog,这是非常有用的一个功能,以往我们使用其他类型框架或者直接使用 JDBC的时候, 如果我们要达到同样的选择效果的时候,我们就需要拼SQL语句,这是极其麻烦的,比起来,上述的动态SQL就要简单多了。 choose元素的作用就相当于JAVA中的switch语句,基本上跟JSTL中的choose的作用和用法是一样的,通常都是与when和otherwise搭配的。看如下一个例子: Xml代码 ? select?id=dynamicChooseTest?parameterType=Blog?resultType=Blog?? ????select?*?from?t_blog?where?11?=?1??? ????choose?? ????????when?test=title?!=?null?? ????????????and?title?=?#{title}?? ????????/when?? ????????when?test=content?!=?null?? ????????????and?content?=?#{content}?? ????????/when?? ????????otherwise?? ????????????and?owner?=?owner1?? ????????/otherwise?? ????/choose?? /select?? when元素表示当when中的条件满足的时候就输出其中的内容,跟JAVA中的switch效果差不多的是按照条件的顺序,当when中有条 件满足的时候???就会跳出choose,即所有的when和otherwise条件中,只有一个会输出,当所有的都不满足的时候就输出 otherwise中的内容。所以上述语句的意思非常简单, 当title!=null的时候就输出and titlte = #{title},不再往下判断条件,当title为空且content!=null的时候就输出and content = #{content},当所有条件都不满足的时候就输出otherwise中的内容。 where语句的作用主要是简化SQL语句中where中的条件判断的,先看一个例子,再解释一下where的好处。 Xml代码 ? select?id=dynamicWhereTest?parameterType=Blog?resultType=Blog?? ????select?*?from?t_blog??? ????where?? ????????if?test=title?!=?null?? ????????????title?=?#{title}?? ????????/if?? ????????if?test=content?!=?null?? ????????????and?content?=?#{content}?? ????????/if?? ????????if?test=owner?!=?null?? ????????????and?owner?=?#{owner}?? ????????/if?? ????/where?? /select?? ?where元素的作用是会在写入where元素的地方输出一个where,另外一个好处是你不需要考虑where元素里面的条件输出是什么样 子

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档