- 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
- 2025IHC希望数学培训100题2年级-答案版.pdf
- 【考试版】第六单元百分数(一)检测卷【提高卷】--六年级数学上册 人教版.pdf
- 第五单元 分数四则混合运算(拔高训练)--2024年六年级数学上册单元检测卷(苏教版).pdf
- 第五单元《解决问题的策略》--2024年四年级数学上册单元检测卷(苏教版)教师版.pdf
- 【解析版】第六单元除数是两位数的除法检测卷【提高卷一】--四年级数学上册(解析卷)人教版.pdf
- 中国漆工填充料行业市场情况研究及竞争格局分析报告.pdf
- 中国漆线绕电阻器行业市场情况研究及竞争格局分析报告.pdf
- 中国涡轮调节器行业市场情况研究及竞争格局分析报告.pdf
- 中国涡轮螺桨发动行业市场情况研究及竞争格局分析报告.pdf
- 中国漆包纹线行业市场情况研究及竞争格局分析报告.pdf
最近下载
- 误差理论与数据处理第六版答案.docx VIP
- 优秀小学生成长档案手册成长简历模板(A4打印版本) .pdf VIP
- 构美-空间形态设计智慧树知到期末考试答案2024年.docx
- 重大危险源(储罐区、库区和生产场所)安全监控通用技术规范(征求意见稿).doc
- 三科2009-2016期末试卷1213审计学期末考试卷.pdf VIP
- 老有“所”舞——广州市逸景翠园居住区广场舞空间现状调研报告(终).pdf VIP
- 超声清洗_教程.ppt VIP
- 五年级上册人音版音乐:第4课《外婆的澎湖湾》示范课PPT.pptx
- 3三甲医院评审追踪检查流程-药事管理.pdf VIP
- 劳动教育课程-电子教案.docx VIP
文档评论(0)