mybatis中多条件判断---choose when的用法
<select id="getFunctionByPage" resultMap="FunctionRlt">
SELECT
K.FUNCTION_NAME,K.FUNCTION_NO,K.URL,K.PARAM_CLASS,
FROM PUB_FUNCTION K
<choose>
<when test="model.parentFuncName!= null and model.parentFuncName!= ''">
,PUB_FUNCTION PF WHERE K.PARENT_FUNCTION_ID=PF.FUNCTION_ID
AND PF.FUNCTION_NAME LIKE '%'||#{model.parentFuncName}||'%'
<if test="model.functionName != null and model.functionName != ''">
AND K.FUNCTION_NAME LIKE '%'||#{model.functionName}||'%'
</if>
<if test="model.functionType != null and model.functionType != ''">
AND K.FUNCTION_TYPE = #{model.functionType}
</if>
<if test="model.isMobile != null and model.isMobile != ''">
AND K.IS_MOBILE = #{model.isMobile}
</if>
</when>
<!-- 根据父功能点获取子功能列表 -->
<when test="model.functionId != null and model.functionId != ''">
<where>
<choose>
<when test="model.functionId==000000L">
AND K.PARENT_FUNCTION_ID is null
</when>
<otherwise>
AND K.PARENT_FUNCTION_ID=#{model.functionId}
</otherwise>
</choose>
</where>
</when>
<otherwise>
<where>
<if test="model.functionName != null and model.functionName != ''">
AND K.FUNCTION_NAME LIKE
'%'||#{model.functionName}||'%'
</if>
<if test="model.functionType != null and model.functionType != ''">
AND K.FUNCTION_TYPE = #{model.functionType}
</if>
<if test="model.isMobile != null and model.isMobile != ''">
AND K.IS_MOBILE = #{model.isMobile}
</if>
</where>
</otherwise>
</choose>
<choose>
<when test="sort != null and sort != '' and dir != null and dir != ''">
ORDER BY ${sort} ${dir}
</when>
<otherwise>
ORDER BY K.PARENT_FUNCTION_ID,K.FUNCTION_SEQ ASC
</otherwise>
</choose>
</select>
mybatis中多条件判断---choose when的用法的更多相关文章
- MyBatis中的条件判断单引号双引号的使用
对于字符串判断, <if test="aIn != 'A'" >会出现问题,系统会试图把'A'转成数字,改为 <if test='aIn != "A&q ...
- sql 语句中使用条件判断case then else end
sql 语句中使用条件判断case then else end范例: SELECT les.[nLessonNo] FROM BS_Lesson AS les WHERE les.[sClassCod ...
- shell中的条件判断以及与python中的对比
shell中比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格. if ....; then ...
- Shell编程中的条件判断(条件测试)
Shell中的条件判断(测试)类型: 1) 整数测试 2) 字符测试 3) 文件测试 条件测试的表达式: (注: expression 与 [] 之间空格不能省略) [ expressi ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- 完全总结bash中的条件判断test [ [[ 使用
在bash脚本编程中,我们经常做一些条件判断, 我们主要用到了三种,test,单中括号,双中括号 经常有看到不同的写法,如: [ $? –eq ] [[ $myvar == “mysql” ]] te ...
- SSM-MyBatis-13:Mybatis中多条件查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...
- shell中的条件判断if和测试
(一)条件判断 if 中-z 到 -d 的意思 [ -a file ] 若file存在,则为真. [ -b file ] 若file存在且是一个块特殊文件,则为真. [ -c file ] 若file ...
- 在Less中使用条件判断
好几个月都没写点什么东西了,被外派到Gov开发项目,老旧的系统让开发痛苦不堪,接口文档甚至是2011年的,感觉这几个月的时间都被浪费在做兼容处理上了,并且没学到什么东西,心里挺不是滋味.回到公司后才知 ...
随机推荐
- C#线程篇---你所不知道的线程池(4)
线程的创建和销毁都要耗费大量的时间,有什么更好的办法?用线程池! 太多的线程浪费内存资源,有什么更好的办法?用线程池! 太多线程有损性能,有什么更好的办法?用线程池!(⊙_⊙)? 线程池是什么?继前三 ...
- python反射,单例模式
# getattr# hasattr# setattr# delattr class Foo: def __init__(self, name,age): self.name = name self. ...
- jQuery读取KindEditor的值
$(document.getElementsByTagName("iframe")[0].contentWindow.document.body).html();
- oracle进阶之分析函数
本博客是自己在学习和工作途中的积累与总结,纯属经验之谈,仅供自己参考,也欢迎大家转载,转载时请注明出处. http://www.cnblogs.com/king-xg/p/6797119.html 分 ...
- PHP数组的遍历
对于012345...这样的数组可以用for进行遍历 $arr=array('a','b','c','d','e'); for($key=0;$key<count($arr);$key++){ ...
- 基于 Cocos2d-x-lua 的游戏开发框架 Dorothy 简介
基于 Cocos2d-x-lua 的游戏开发框架 Dorothy 简介 概述 Dorothy 是一个在 Cocos2d-x-lua 基础上发展起来的分支, 它去掉 Cocos2d-x-lua 那些过多 ...
- jQuery中的text(),html(),val()的区别
一.jquery中HTML 1. 无参html() 方法用来获取任意元素的HTML内容,如果你调用多个选定元素的.html()方法,那么其读取的只是第一个元素,换句话说:如果选择器匹配多于一个的元素, ...
- 关于thinkpad安装win10操作系统
thinkpad预装的是win8或者win10,会有自己的分区方式是GPT,所以会出现两个引导分区. F2进入tinkpad的bios,F12进入启动选项 我们用pe进入后,用分区工具删除两个分区,然 ...
- TED_Topic4:How I fell in love with quasars, blazars and our incredible universe
By Jedidah Isler # Background about our speaker Jedidah Isler studies blazars(耀变天体) — supermassive h ...
- 线搜索(line search)方法
在机器学习中, 通常需要求某个函数的最值(比如最大似然中需要求的似然的最大值). 线搜索(line search)是求得一个函数\(f(x)\)的最值的两种常用迭代方法之一(另外一个是trust re ...