ibatis批量查询

直接上干货

1,查询

在编写sql中查询多个id所对应的数据的话,一般都用in(1,2,3),在ibatis可以用下面方法实现。


  注意:taskId名称最好和参数名称相同。(个人意见)

 2,删除

在批量删除中大多数人会用in(1,2,3),大家都知道in中参数最多知道有1000个,这时候我们删除就不能使用这种方法,下面是iBATIS批量删除方法。

   delete from fillitems  where 1=1  user_id=#list[]#

执行后sql是 delete from fillitems  where 1=1 and(user_id=1 or user_id=2 or user_id=3)

3,批量新增

oracle 批量新增sql和其他数据新增的sql写法不一样。下面是orcale数据库:

   insert all
      
      into fillitems(fs_id,user_id,exception_item_codes,exception_item_texts,overtime_item_codes,overtime_item_texts)
        values (F_GETSEQ(#list[].userId#),#list[].userId#,#list[].exceptionItemCodes#,#list[].exceptionItemTexts#,
            #list[].overtimeItemCodes#,#list[].overtimeItemTexts#)  
   
      select * from dual
 

上面需要注意的地方是F_GETSEQ(#list[].userId#) 这是数据库中的一个函数(自己写的),参数是任意唯一标识 ,函数主要是获得批量新增的序列,因为iBATIS中序列只会获得一次所以不能用nextValue,如是主键会报违反唯一约束错误。

这是我在开发中用到的,都可以使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值