mybatisplus批量update,mybatis批量更新sql语句

  mybatisplus批量update,mybatis批量更新sql语句

  00-1010要求服务地址:1。第一个3360应该是效率最低的更新2。通过批量更新进行xml转换的注意事项:使用trim节点标签的set解释时逗号引起的问题:

  00-1010通过其他库查询一条数据,在另一个库中更新oederId的内容。注意3360使用批量更新时,连接数据库的语句需要加上allowMultiQueries=true。

  JDBC : my SQL ://127 . 0 . 0 . 1:3306/TB?use unicode=true character encoding=utf-8 server time zone=GMT 8 use SSL=false allowmultiqueries=true

  00-1010查询出来直接修改更新语句。

  00-1010通过查询和匹配表中的数据,将要更新的数据添加到一个集合中,使用foreach更新xml中的数据。如果要插入的数据太长,可能会有一些问题,那么我们就批量插入要插入的集合,这样update语句就不会太长了。

  使用子列表方法截取插入数量,我们批量插入500件。

  要使用此方法,必须使用左父右子的形式来使用父类的方法。

  list T uptbDtos=new ArrayList();

  

目录

update id= updateOrderXqlDatas foreach collection= list index= index item= item separator=;open= close= 更新TB _ Taobao _ order set if test= item . wxid!=null wxid=#{item.wxid},/if if test=item.wxname!=null wxname=# { item . wxname }/if/set where trade _ id=# { item . tradeid,JDBC type=varchar }/foreach/update SQL语句3360输出

 

  Tb _ Taobao _ orderset wxid= 1 ,wxname=哈哈哈其中TRADE _ ID= 5456 # 39;Tb _ Taobao _ orderset wxid= 2 ,wxname=哈哈哈wheretrade _ id= 5458会以这种形式拼接在一起,一起跑!与第一个不同的是,第一个是单个更新的运行提交!

  00-1010如果修改时需要用逗号分隔多个值,那么总会出现一种情况,如果对象的值为null,那么if标签的值就不会被插入,这样就会出现问题。如果对象中的wxname为null,那么插入的语句将变成3360 update TB _ TAOBAO _ ORDER SET WXID= 1 ,其中trade _ ID= 5456你会发现wxid=1 1 后面跟着一个逗号。这样的sql肯定会报错!**

  为了解决这个问题,我们将set标签改为trim标签。

  foreach collection= list index= index item= item separator=;open= close= UPDATE TB _ Taobao _ order trim prefix= set suffix overrides=, if test=item.wxid!=null wxid=#{item.wxid},/if if test=item.wxname!=null wxname=# { item . wxname }/if/trim其中TRADE_ID=#{item.tradeid,jdbcType=VARCHAR}/foreach

  00-1010属性:

  Prefix:trim前面包含一些前缀。

  后缀:trim在内容后包含一个后缀。

  prefixOverrides:内容头的某些内容被删除。

  后缀suffixOverrides:末尾的一些内容被删除。

  修改后,正在运行的程序开始同步数据。

  同步时间从原来的1020秒增加到现在的16秒多少?

  没时间批量更新了!

  以上是Mybatis更新批次和常用解决方案的对比细节。更多关于Mybatis更新批次的常用对比,请关注盛行IT的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: