zoukankan      html  css  js  c++  java
  • java for循环里面执行sql语句操作,有效结果只有一次,只执行了一次sql mybatis 循环执行update生效一次 实际只执行一次

    java后台controller中,for循环执行数据库操作,但是发现实际仅仅执行了一次,或者说提交成功了一次,并没有实际的个数循环

    有可能是同一个对象导致的

    可以仔细看一下下面两段代码有什么区别

    ps:代码无实际意义,只为演示

    Entity entity=null;
    for(int i=0;i<5;i++){
                            
                             entity= new Entity();
                             entity.setId(i);
                             entity.setCreateTime(new Date());
                            boolean updateResult = Service.update( entity );
                        }
    Entity entity = new Entity();
    for(int i=0;i<5;i++){
                            entity.setId(i);
                            entity.setCreateTime(new Date());
                            boolean updateResult = Service.update(entity );
                        }

    很明显上面是声明了一个引用,每一次都创建了一个新的对象,并执行update操作

    下面是同一个对象,不断地改变赋值,然后执行了update操作

    其结果截然不同:

    上面的一段代码,会执行实际的次数,循环0,1,2,3,4    执行5次update

    下面的代码仅仅只会执行一次,因为是同一个对象

    所以如果循环里面,调用service,service调用了dao执行了sql,如果发现仅仅只是执行了一次,可以考虑怀疑是不是对象是同一个

  • 相关阅读:
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
  • 原文地址:https://www.cnblogs.com/noteless/p/5411415.html
Copyright © 2011-2022 走看看