- 4
- 0
- 约6.21千字
- 约 7页
- 2016-08-27 发布于重庆
- 举报
mybatis实战教程之八动态sql语句
mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
mybatis 的动态sql语句是基于OGNL表达式的。可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似.3. trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)4. where (主要是用来简化sql语句中where条件判断的,能智能的处理 and or ,不必担心多余导致语法错误)5. set (主要用于更新时)6. foreach (在实现 mybatis in 语句查询时特别有用)下面分别介绍这几种处理方式1. mybaits if 语句处理
?程序代码
??? select id=dynamicIfTest parameterType=Blog resultType=Blog??????? select * from t_blog where 1 = 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就要简单多了2.2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jstl 中的choose 很类似
?程序代码
??? select id=dynamicChooseTest parameterType=Blog resultType=Blog??????? select * from t_blog where 1 = 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中的内容。3.trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)
?程序代码
??? select id=dynamicTrimTest parameterType=Blog resultType=Blog??????? select * from t_blog???????? trim prefix=where prefixOverrides=and |or??????????? if test=title != null?????
您可能关注的文档
- 2010年党员学习材料.doc
- 2010年会计从业资格考试财经法规精装笔记8.doc
- 2010年公开选拔考试案例分析题(四).doc
- Loadrunner中web_find和web_reg_find函数的使用与区别.doc
- LoadRunner录制脚本不弹出IE浏览器问题解决.doc
- LoadRunner学习笔记.doc
- LoadRunner的工作原理图.doc
- LotusNotes系统客户端的安装使用与维护-转载自网管之家.doc
- 2010年初中毕业学业水平考试语文试题卷(自己设计).doc
- 2010年北京市西城区初三二模物理试卷(含答案).doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025年北京中考英语大纲课件.pdf VIP
- 加油站安全管理研究.doc VIP
- (高清版)DB42∕T 1086-2015 《森林土壤有机质的测定 分光光度法》.pdf VIP
- QBNM-PS-0011—2020汽车车身内腔防护蜡标准.pdf VIP
- 广发证券-房地产行业2026年投资策略-星垂平野阔,月涌大江流.pdf VIP
- 2026年春节复工复产安全培训开工第一课全文.ppt
- 2025年烟台汽车工程职业学院单招语文测试模拟试卷优选题库.docx VIP
- 三副实习记录簿附页(精.选).docx VIP
- 2025年信息系统安全专家多方安全计算协议专题试卷及解析.pdf VIP
- 2025年拍卖师拍卖会PPT与多媒体素材播放技术保障专题试卷及解析.pdf VIP
原创力文档

文档评论(0)