iBatis中的sqlmap里if else逻辑判断的写法
2016-09-30 09:11
417 查看
求助:iBatis中的sqlmap里if else逻辑判断的写法 [问题点数:100分]
不显示删除回复显示所有回复显示星级回复显示得分回复
只显示楼主
收藏
关注 pangpangxixi pangpangxixi 本版等级: 结帖率:0% | 楼主发表于: 2011-07-14 20:42:10 比较简单 但是很烦人 加入sql的逻辑(伪代码)是: if(a!=b){ select sql1; }else{ select sql2; } 翻译到sqlmap中,该怎么写呢? 只知道一个可以判断相等的节点的写法, <isNotEqual property="a" compareValue="b"> sql1 </isNotEqual> 这个是判断不等于的,可是"不等于"的反面不是"等于"啊,还可能取到其他值,肯定不能简单写成 <isEqual property="select" compareValue=""> sql2 </isEqual> 这样的形式啊 急!急!急!急!急!急! 更多0分享到: 相关知识库: 深度学习 React Native iOS 直播技术 <iframe id="iframeu1636200_0" src="http://pos.baidu.com/fcxm?rdid=1636200&dc=2&di=u1636200&dri=0&dis=0&dai=3&ps=1246x463&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1475153362522&ti=%E6%B1%82%E5%8A%A9%3AiBatis%E4%B8%AD%E7%9A%84sqlmap%E9%87%8Cif%20else%E9%80%BB%E8%BE%91%E5%88%A4%E6%96%AD%E7%9A%84%E5%86%99%E6%B3%95-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&ari=2&dbv=2&drs=3&pcs=1504x851&pss=1504x8793&cfv=0&cpl=5&chi=1&cce=true&cec=UTF-8&tlm=1475153363&rw=851<u=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F370068700<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D86K1yKQ18j0pylXbdLesYolK-i5W3ttPsFYZOeOlnbDT0bS9wH1uZ7CAsU_VISgi%26wd%3D%26eqid%3Dac54cfe2000038690000000557ed0dce&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=7&col=zh-CN&cdo=-1&tcn=1475153363&qn=19c52e65dd9d892c&tt=1475153362501.863.863.864" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe> <iframe id="iframeu1636201_0" src="http://pos.baidu.com/fcxm?rdid=1636201&dc=2&di=u1636201&dri=0&dis=0&dai=4&ps=1246x717&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1475153362522&ti=%E6%B1%82%E5%8A%A9%3AiBatis%E4%B8%AD%E7%9A%84sqlmap%E9%87%8Cif%20else%E9%80%BB%E8%BE%91%E5%88%A4%E6%96%AD%E7%9A%84%E5%86%99%E6%B3%95-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&ari=2&dbv=2&drs=3&pcs=1504x851&pss=1504x8804&cfv=0&cpl=5&chi=1&cce=true&cec=UTF-8&tlm=1475153363&rw=851<u=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F370068700<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D86K1yKQ18j0pylXbdLesYolK-i5W3ttPsFYZOeOlnbDT0bS9wH1uZ7CAsU_VISgi%26wd%3D%26eqid%3Dac54cfe2000038690000000557ed0dce&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=7&col=zh-CN&cdo=-1&tcn=1475153363&qn=4cf10647777981c0&tt=1475153362501.866.866.867" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe> <iframe id="iframeu1636204_0" src="http://pos.baidu.com/fcxm?rdid=1636204&dc=2&di=u1636204&dri=0&dis=0&dai=5&ps=1246x971&dcb=BAIDU_SSP_define&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1475153362522&ti=%E6%B1%82%E5%8A%A9%3AiBatis%E4%B8%AD%E7%9A%84sqlmap%E9%87%8Cif%20else%E9%80%BB%E8%BE%91%E5%88%A4%E6%96%AD%E7%9A%84%E5%86%99%E6%B3%95-CSDN%E8%AE%BA%E5%9D%9B-CSDN.NET-%E4%B8%AD%E5%9B%BD%E6%9C%80%E5%A4%A7%E7%9A%84IT%E6%8A%80%E6%9C%AF%E7%A4%BE%E5%8C%BA&ari=2&dbv=2&drs=3&pcs=1504x851&pss=1504x8804&cfv=0&cpl=5&chi=1&cce=true&cec=UTF-8&tlm=1475153363&rw=851<u=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F370068700<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D86K1yKQ18j0pylXbdLesYolK-i5W3ttPsFYZOeOlnbDT0bS9wH1uZ7CAsU_VISgi%26wd%3D%26eqid%3Dac54cfe2000038690000000557ed0dce&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=7&col=zh-CN&cdo=-1&tcn=1475153363&qn=f05d5798bcaf7c19&tt=1475153362501.869.869.869" width="200" height="22" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;"></iframe> |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 回复次数:14 |
关注 xianaofei xianaofei 本版等级: | #1 得分:0回复于: 2011-07-14 21:41:51 select from <isEqual property="type" compareValue="0"> a </isEqual> <isEqual property="type" compareValue="1"> b </isEqual> where id = #id# |
对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 xianaofei xianaofei 本版等级: | #2 得分:0回复于: 2011-07-14 21:45:21 <isEqual property="type" compareValue="0"> type也是你传递的一个参数 Map<String, String> paras = new HashMap<String, String>(); paras.put("type", type); paras.put("id", id); <select id="select" parameterClass="java.util.Map"> select from <isEqual property="type" compareValue="0"> a </isEqual> <isEqual property="type" compareValue="1"> b </isEqual> where id = #id# </select> |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 hansong7299 IT淡淡 本版等级: | #3 得分:0回复于: 2011-07-14 21:55:56 路过。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 pangpangxixi pangpangxixi 本版等级: | #4 得分:0回复于: 2011-07-15 10:22:28 自顶 2楼的看不懂! |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 zl3450341 兔子党-大胡子 本版等级: | #5 得分:0回复于: 2011-07-15 10:39:19 如果二楼的写法,你看不懂。。。那我也不知道怎么帮你了。 解释一下吧 <isEqual property="type" compareValue="0"> a </isEqual> 相当于Java中 if(type.equals("0")){ str += "a" } 再不懂,没办法了 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 pangpangxixi pangpangxixi 本版等级: | #6 得分:0回复于: 2011-07-15 10:47:26 回楼上 我指的是当a不等于b的方面这种情况发生的时候 a!=b的反面 不是a=b啊 你俩写成<isEqual property="type" compareValue="0"> a </isEqual> 这个逻辑漏掉了很多种a为其他值得情况! |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 pangpangxixi pangpangxixi 本版等级: | #7 得分:0回复于: 2011-07-15 10:49:18 回楼上 我指的是 "当a不等于b的反面" 这种情况发生的时候 a!=b的反面 不是a=b啊 你俩写成<isEqual property="type" compareValue="0"> a </isEqual> 这个逻辑漏掉了很多种a为其他值的情况! 逻辑有问题,就像 白的反面 只是 不白 不能说成黑啊 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 pangpangxixi pangpangxixi 本版等级: | #8 得分:0回复于: 2011-07-15 16:28:17 再次自顶 懂的帮! |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 yexiongMYBH yexiongMYBH 本版等级: | #9 得分:0回复于: 2011-07-15 21:12:26 你逻辑关系没学好,,,在这个里面,你的else里面的语句,就是A Equal B,, |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 yeahking1981 yeahking1981 本版等级: | #10 得分:0回复于: 2011-08-23 10:26:25 引用楼主 pangpangxixi 的回复: 比较简单 但是很烦人 加入sql的逻辑(伪代码)是: if(a!=b){ select sql1; }else{ select sql2; } 翻译到sqlmap中,该怎么写呢? 只知道一个可以判断相等的节点的写法, <isNotEqual property="a" compareValue="b"> sql1 </isNotEqual> 这个是判断…… 其实你被自己的伪代码迷惑了。 if(a==b){ select sql2; }else{ select sql1; } 应该跟你的伪代码是等效的吧。 翻译成ibatis就是 <isEqual property="a" compareValue="b"> sql2 </isEqual> <isNotEqual property="a" compareValue="b"> sql1 </isNotEqual> |
对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 good_sun good_sun 本版等级: | #11 得分:0回复于: 2013-09-18 14:09:40 擦,楼上这一堆人就这逻辑还写代码呢。。。 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 forgetsam forgetsam 本版等级: | #12 得分:0回复于: 2013-09-18 14:53:15 一元条件元素 一元条件元素检查属性的状态是否符合特定的条件。 一元条件元素的属性: prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选) property - 被比较的属性(必选) <isPropertyAvailable> 检查是否存在该属性(存在 parameter bean 的属性) 。 <isNotPropertyAvailable> 检查是否不存在该属性(不存在 parameter bean 的属性) 。 <isNull> 检查属性是否为 null。 <isNotNull> 检查属性是否不为 null。 <isEmpty> 检查 Collection.size()的值,属性的 String 或 String.valueOf()值, 是否为 null或空( “”或size() < 1) 。 <isNotEmpty> 检查 Collection.size()的值,属性的 String 或 String.valueOf()值, 是否不为 null 或不为空( “”或 size() > 0) 。 例子: <isNotEmpty prepend=”AND” property=”firstName” > FIRST_NAME=#firstName# </isNotEmpty> 人家给你A和B,你就只会传个A和B,对吧? 你就不能自己判断一下A和B,给ibatis传个自己定义的参数进去? |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 m751075306 神探亨特毛 本版等级: | #13 得分:0回复于: 2013-09-18 15:03:55 引用 7 楼 pangpangxixi 的回复: 回楼上 我指的是 "当a不等于b的反面" 这种情况发生的时候 a!=b的反面 不是a=b啊 你俩写成<isEqual property="type" compareValue="0"> a </isEqual> 这个逻辑漏掉了很多种a为其他值的情况! 逻辑有问题,就像 白的反面 只是 不白 不能说成黑啊 你的伪代码是 if(a!=b){ select sql1; }else{ select sql2; } 按你的意思这样写也是对的 if(a==b){ select sql2; }else{ select sql1; } 好了,你说这种情况漏掉了很多种a为其他值的情况 那你的伪代码怎么能是if..else..呢? 白的反面是不白,不能说成黑,那也有可能是红黄蓝绿 你是不是该把你的伪代码改成switch语句 |
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理 |
关注 u010682529 -騎豬看海- 本版等级: | #14 得分:0回复于: 2013-09-20 00:14:12 引用 13 楼 m751075306 的回复: Quote: 引用 7 楼 pangpangxixi 的回复: 回楼上 我指的是 "当a不等于b的反面" 这种情况发生的时候 a!=b的反面 不是a=b啊 你俩写成<isEqual property="type" compareValue="0"> a </isEqual> 这个逻辑漏掉了很多种a为其他值的情况! 逻辑有问题,就像 白的反面 只是 不白 不能说成黑啊 你的伪代码是 if(a!=b){ select sql1; }else{ select sql2; } 按你的意思这样写也是对的 if(a==b){ select sql2; }else{ select sql1; } 好了,你说这种情况漏掉了很多种a为其他值的情况 那你的伪代码怎么能是if..else..呢? 白的反面是不白,不能说成黑,那也有可能是红黄蓝绿 你是不是该把你的伪代码改成switch语句 大家这么热心帮,帮到白眼狼了啊 |
相关文章推荐
- Shell| 流程控制语句(if)和判断逻辑的几种写法(是否省略test)
- 在ibatis中做等值判断(if-else)
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else、s witch、case 等关键字以及条件判断语句(A?B:C)和不用循环/goto/递归输出1~100的10种写法
- JSTL中if...else...逻辑判断的简单用法
- python中if else流程判断
- 用位运算实现求绝对值-有效避开if-else判断
- HDU-5504(逻辑if-else大水题)
- Nginx中实现if多重判断写法
- 68.if逻辑判断以及判断文件目录属性 if特殊用法 case判断
- 求1+2+...+n的前n项和,但不用乘除法、for、while、if、else、switch、case等关键字及条件判断语句
- shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
- sql if else 写法,和 多个case when用法
- linux shell中 if else以及大于、小于、等于逻辑表达式介绍
- JSTL标签 if else 判断
- if-else判断以及修改<img>的src属性
- 流程判断(if...else)
- 笔记--ThinkPHP模板判断之if elseif else
- 关于jsp html标签的判断问题 if else 功能
- 如何在JSP页面中使用JSTL标签实现if和if-else判断,判断条件使用<%=value%>
- shell中if逻辑判断的常见用法