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,如果發現僅僅只是執行了一次,可以考慮懷疑是不是對象是同一個


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM