问一个ibatis动态条件的问题

问题描述

情况如下:select*fromtablet<dynamicprepend="where"><isNotEmptyprepend="and"property="a">t.A=#a#</isNotEmpty><isNotEmptyprepend="and"property="b">t.B=#b#</isNotEmpty><isNotEmptyprepend="and"property="a">t.C=3</isNotEmpty><isNotEmptyprepend="and"property="b">t.C=3</isNotEmpty></dynamic>红色的部分要表达的意思就是如果a或着b不会空就把t.C=3这个条件加上,当然我这样写也可以,如果a和b都不为空,无非就是两个t.C=3就是:select*fromtabletwheret.A=#a#andt.B=#b#andt.C=3andt.C=3这样倒是不影响查询,不过,是不是有其它办法来解决这个问题(a或着b不会空就把t.C=3这个条件加上)

解决方案

解决方案二:
再加个c参数,c=a+b<isNotEmptyprepend="and"property="c">t.C=3</isNotEmpty>
解决方案三:
再加一个参数c,根据a,b的是否为空来设定c的值,这样是可以的,不过,要在参数传进来的之前做好对c的值的设定的判断。我想问的是ibatis是不是有这样的逻辑条件的判断,可以一次判断两个条件(就像if(a!=null||b!=null){c=3;}这样的),而不是只能判断一个值的空或不空。
解决方案四:
1楼已回答你的问题,在外围java再加个参数c,传给ibatis
解决方案五:
<isNotEmptyprepend="and"property="a"removeFirstPrepend="true">t.C=3</isNotEmpty><isNotEmptyprepend="and"property="b"removeFirstPrepend="true">t.C=3</isNotEmpty>
解决方案六:
应该ibatis目前是不支持if(a!=null||b!=null){c=3;}这样的),希望ibatis3.0可以实现。
解决方案七:
用ibatis3,3以后支持类似el表达式,比如<iftest="a!=null||b!=null">t.C=3</if>
解决方案八:
ibatis的条件是可以嵌套的。
解决方案九:
该回复于2011-03-03 14:40:57被版主删除
解决方案十:
(<isNotEmptyprepend="and"property="a">t.C=3</isNotEmpty><isNotEmptyprepend="or"property="b">t.C=3</isNotEmpty>)试试了

时间: 2024-12-23 11:32:53

问一个ibatis动态条件的问题的相关文章

java jquer...-问一个jquery动态赋值的问题,求大神解决

问题描述 问一个jquery动态赋值的问题,求大神解决 我有一个页面里面有一个单选框,单选框选了后传到后台没有值,还有就是如何实现点击单选框的时候用jquery动态的给后面的两个文本框赋值,点击单选框如果为true时,给后面两个文本框赋值,求大神解决,java 解决方案 <script type="text/javascript"> function cbChange(){ if($("#rad").is(":checked")){

问一个关于按条件取数据问题

问题描述 有个动态数据,比如有205条数据DataView我需要按每100条取出,如不足100条时就全部取出,想了很久都没好的解决方式这样子取出.100条100条5 解决方案 解决方案二:google"分页技术"解决方案三:按照自己的逻辑写分页吧解决方案四:这一是分页,只是纯取数据我现在是用几个for+if来判断取数据,感觉有点麻烦解决方案五:引用1楼的回复: google"分页技术" 前面写了,这不是分页,只是处理如何将数据集按100条规则取出,因为我需要按每10

逻辑训练-问一个逻辑问题,关于离散数学的

问题描述 问一个逻辑问题,关于离散数学的 本人信息安全专业最近学到离散数学讲到一个蕴含关系想问问大家一个思维问题就图里画线部分.p 蕴含q 在日常生活中可以变成类似于只有 q才 p 这个要怎么理解它?利用集合来理解可以吗 解决方案 离散数学不太清楚了,就理解的话,应该可以使用集合来理解,p蕴含q,说明q是p的组成要素,如人是由各种器官组成的,比如心脏,只有心脏存在,才能存在人.也就是说q是p的必要不充分条件. 解决方案二: 离散数学不太清楚了,就理解的话,应该可以使用集合来理解,p蕴含q,说明q

ibatis动态语句中的prepend

关于ibatis动态sql的prepend的属性,我们需要理解一下几点 select * from student <dynamic prepend="where">  <isNotNull property="id" prepend="and">   id = #id#  </isNotNull>  <isNotNull property="name" prepend="a

c语言-C语言:小白问一个问题

问题描述 C语言:小白问一个问题 代码如下 #include void search(float (*p)[4],int n) { int i,j,k; for(i=0;i<n;i++) { k=0; for(j=0;j<4;j++) if(*(*(p+i)+j)<60) k=1; if(k==1) { printf("the falied student numbers are No.%d ",i+1); for(j=0;j<4;j++) printf(&qu

c++-递归~问一个幼稚的问题,有哪个大神能讲一下递归,结合代码,老是理解不了。先谢过了

问题描述 递归-问一个幼稚的问题,有哪个大神能讲一下递归,结合代码,老是理解不了.先谢过了 谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢 解决方案 递归就是自己调用自己,如一般要有一个调用递归的条件 /** * 递归实现前序遍历 * @author linbingwen * @since 2015年8月29日 * @param treeNode */ public static void preOrderMethodOne(TreeNode treeNode) { if (nul

新人问一个c语言问题,拜托各位帮我解释一下

问题描述 新人问一个c语言问题,拜托各位帮我解释一下 要求找出一个x,使其除以5余1,除以6余5,除以7余4,除以11余10我写的代码int main(){ int x=0; do{ x++; }while(x%5!=1&&x%6!=5&&x%7!=4&&x%11!=10); printf(""%d""x); return 0; }问题出现在while括号里面条件,参考答案是while(!(x%5==1&&am

问一个处理问题的解决思路,大数据处理

问题描述 问一个处理问题的解决思路,大数据处理 数据库中有一个表TB_TASK,这个表很大,大约有1千万条数据,要求每条处理并更新状态为"已解决",由于需要计算,每条处理时间需要3秒钟(固定时间).如果希望在1个小时内处理完所有的数据,有什么解决思路? 解决方案 你这个状态位应该是一种标志位吧?是要每条都更新为已解决状态还是要符合一定条件再看要不要更新为已解决? 解决方案二: 如果要1个小时之内,每条处理需要3s建议3s时间内处理一批状态为'未解决'的数据

convertview-ExpandableListview的子item中的一个linearlayout动态添加图片错乱

问题描述 ExpandableListview的子item中的一个linearlayout动态添加图片错乱 我使用了ExpandableListview,他的子item中有一个linearlayout我需要遍历一个数组然后动态添加图片,在adapter中用了viewholder,现在就是后加载的item中会把之前的图片也添加进去,我初步断定是因为复用的问题 查了一下,网上好多都说设置tag,我想问一下各位如果我给这个layout设置tag的话,后边怎么进行处理 还有就是能不能做到这块不复用,还是