- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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元素里面的条件输出是什么样 子
您可能关注的文档
- 继电保护及自动装置运行规程教材.doc
- 继电保护技术规程GB14285-2006教材.doc
- 广州受欢迎物理新王牌补习班-简单机械教材.doc
- 继电保护题库(特种)单选题教材.doc
- 继电保护习题300道教材.doc
- Microsoft_Outlook2007_的设置方法答题.docx
- 煤矿水害事故防治技术总结.ppt
- midasGen-钢筋混凝土框架剪力墙动力弹塑性答题.doc
- 归州响淌内小桥施工施组教材.doc
- 硅钢技术操作规程教材.doc
- 2025年时事政治题及参考答案详解(新).docx
- 2025中国农业科学院哈尔滨兽医研究所招聘(黑龙江)模拟试卷及参考答案详解一套.docx
- 2025重庆大学纪检监察机构劳务派遣工作人员招聘1人考前自测高频考点模拟试题及参考答案详解.docx
- 2025四川成都市双流区永安中心卫生院(成都市双流区第二人民医院)招聘编外人员8人考前自测高频考点模.docx
- 2025年时事政治试题库附完整答案详解【全优】.docx
- 2025最新时事政治必考题库(必刷)附答案详解.docx
- 2025新正电工技术服务有限公司招聘(内蒙古)模拟试卷及参考答案详解.docx
- 2025上海复旦大学类脑智能科学与技术研究院诚聘博士后考前自测高频考点模拟试题及参考答案详解1套.docx
- 2025年时事政治题【实用】附答案详解.docx
- 2025新疆和田地区墨玉县寰玉公交客运有限公司招聘12人模拟试卷附答案详解.docx
最近下载
- 统编版七年级历史下册第18课《统一多民族国家的巩固和发展》优质教案+导学案(含答案).doc
- 审查调查外查工作培训课件.pdf VIP
- 2024-2025学年初中音乐七年级上册(2024)湘艺版(2024)教学设计合集.docx
- 2024年部编版中考语文模拟试卷及答案.doc VIP
- 《萨班斯法案》课件.ppt VIP
- 2021电子科技大学-计算机体系结构实验报告01.pdf
- 《智能机器人系统》全套教学课件.pptx
- 2023年南京郑和外国语学校小升初分班考试数学模拟试卷及答案解析.pdf
- 统编版七年级历史下册第18课《统一多民族国家的巩固和发展》精美教案+导学案(含答案).doc
- AVL BOOST燃烧及传热模型介绍.pdf VIP
文档评论(0)