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