2017-09-02 38 views
-2

我想更新一些舊值的新值,因爲新值以逗號分隔字符串(newStr)和舊值爲整數數組(oldStr)我正在循環它們並更新一個一。更新foreach內的數據庫值

但我遇到了一些問題的最終結果對陣雙方oldStr值更新最後中newstr值:

這是我做過什麼:

值:

整數[] oldStr的值是[1,2]

String newStr的值是3,5

代碼:

String[] parts = newStr.split(","); 

for(String newStrParts : parts) { 

    for(int oldStrParts : oldStr) { 
     String commonNamedQuery = "UPDATE UserEntity SET column1 =:newStrParts WHERE column2 =: oldStrParts "; 
     setParameter()......executeUpdate(); //sample JPA update query and exceute 
     } 
} 

需要建議:),這裏有什麼問題?如果是的話我該如何解決這個問題。

回答

1

使用下面的代碼

String[] parts = newStr.split(","); 

int i = 0; 
for(int oldStrParts : oldStr) { 
     newStrParts = parts[i]; 
     i++; 
     String commonNamedQuery = "UPDATE UserEntity SET column1 =:newStrParts WHERE column2 =: oldStrParts "; 
     setParameter()......executeUpdate(); //sample JPA update query and exceute 
     } 
} 

對於這種情況,新值僅更換一箇舊值與一些位置。

0

你已經寫了一個嵌套for循環,這就是爲什麼它不工作。你可以寫這樣說: `

String[] oldParts = new String[]{"1","2"}; 
String[] newParts = new String[]{"3","4"}; 
     for (int i = 0; i < oldParts.length; i++) { 
      String newStrPart = newParts[i]; 
      String oldStrPart = oldParts[i]; 
      String commonNamedQuery = "UPDATE UserEntity SET column1 =:newStrPart WHERE column2 =: oldStrPart "; 
     } 

`