【ibatis】ibatis动态操作sql数据

本文深入探讨了SQL查询中的条件判断与批量操作技巧,包括使用`isNotEmpty`、`isNotEqual`以及`iterate`等特性进行复杂查询与数据过滤。通过实例展示了如何根据特定条件筛选数据并执行批量删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//简单的判断时候为空
<select id="selectProductAll" parameterClass="Batch" resultClass="Batch">
  select t.proid as proid from t_hx_product_info t where 1=1
  <isNotEmpty property="proviAccountid" >//如果传入过来的proviAccountid不为空
             <isNotEqual prepend="and" property="proviAccountid" compareValue="0">//传入过来的proviAccountid不等于0
               t.procompanyid=#proviAccountid#//如果以上的条件都满足,则根据传入过来的proviAccountid进行操作。
             </isNotEqual>
  </isNotEmpty>
  
 </select>

//迭代条件查询
<select id="selectProxyByProvi" parameterClass="java.util.List" resultClass="Batch">	
	select  from t_hx_person_safe_info ti,  (
	select t.accountid,t.CITYRLATION  from t_hx_user t where 1=1 and
		<iterate conjunction="," open="CITYRLATION in (" close=")">
			#list[].cityAccountid#
		</iterate>) ta//迭代条件
	where ti.seller = ta.accountid and  DATE_FORMAT(ti.signdate ,'%Y-%m-%d') between #list[0].satrtTime# and #list[0].endTime#		
</select>

<!-- 根据操作人用户名,匹配全部子用户,like操作批量删除, 传入List<accountid>数组,匹配多个 -->
<statement id="delPermissionByParentnames" parameterClass="java.util.List">
	DELETE FROM t_hx_permissions
	<iterate prepend="WHERE"  open="(" close=")" conjunction="OR">
	accountid like CONCAT('%',#[]#,'%')    //因为参数是一个list结合。#[]#表示循环中的实体
	</iterate>
</statement>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值