数据库中插入更新方法小结

作者:zebiao,我这里只是记录下
总结一下数据库中插入更新的方法:如果找到重复数据则执行更新,如果没找到重复数据则执行插入,DBClient有三个方法:

1、单条 :insertOnDuplicateKey

int insertOnDuplicateKey(Object bean, String insertFields, String afterUpdate, Object... updateParameters)
参数:

  • bean:数据记录对应的备案对象
  • insertFields:插入的字段,如果为全部字段则输入*
  • afterUpdate:update的字段,如“integralIn=?”,如果有多个字段要更新,中间用逗号隔开
  • updateParameters : 参数,匹配afterUpdate中的?

2、批量:batchOnDuplicateKeyUpdate

int[] batchOnDuplicateKeyUpdate(String insertFields, String afterUpdate, List<?> list, List<Object[]> argsList) ;

参数:

  • insertFields:插入的字段,如果为全部字段则输入*
  • afterUpdate:update的字段,如“integralIn=?”,如果有多个字段要更新,中间用逗号隔开
  • list:装载对于bean的list argsList:
  • 对应参数数据,List<Object[]>,将每条对应的数据的参数存入Object[]中

3、批量:batchOnDuplicateKey

int[] batchOnDuplicateKey(String keys, String fields, List<?> list) ;
参数:

  • keys:唯一索引字段,如果唯一所以是一个组合,则传入该组合
  • fields:插入或更新的字段,其中不能包括key,否则会报错,提示key对应字段已经使用了两次
  • list:存放bean的list

总结:

如果涉及更新的字段较多,推荐使用batchOnDuplicateKey方法,如果涉及的更新字段较少的话可以使用insertOnDuplicateKey和batchOnDuplicateKeyUpdate

示例:需求为插入不重复记录,唯一索引为day字段,

(1)对于insertOnDuplicateKey,调用方法

statDBClient.insertOnDuplicateKey(integralDailyStat, "*", "integralIn=?,integralOut=?,count=?,personTimes=?,day=?,channelPC=?,channelWap=?,channelWechat=?,integralOut_lottery=?", 
integralDailyStat.getIntegralIn(), integralDailyStat.getIntegralOut(), integralDailyStat.getCount(), integralDailyStat.getPersonTimes(), day, integralDailyStat.getChannelPC(), integralDailyStat.getChannelWap(), integralDailyStat.getChannelWechat(), integralDailyStat.getIntegralOutLottery());

(2)对于batchOnDuplicateKey的调用方法

statDBClient.batchOnDuplicateKey("day", "integralIn,integralOut,count,personTimes,channelPC,channelWap,channelWechat,integralOutLottery", list);

batchOnDuplicateKey简洁了很多

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值