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