Ich habe ein Problem, dass ich zunächst 100 Datensätze sagen, und ich zeigte sie auf der Benutzeroberfläche als eine Liste von Benutzern. Jetzt habe ich die Möglichkeit geschaffen, Nummernbenutzer zu deaktivieren, indem ich auf die Schaltfläche "Deaktivieren" klicke, die auf jeden einzelnen Datensatz gelegt wird, dann nehme ich alle "deaktivierten" Benutzer in einer Liste auf und sende sie an die DAO-Schicht ist nur zu setzen 'isDeleted' Flag zu wahren, sooft zu löschen, So ist es so gut wie ich mehrere Datensätze aktualisieren, deren IDs habe ich in die Liste platziert] Es gibt eine einfache Lösung, die eine for-Schleife-> durchlaufen Die Liste-> und für jeden Datensatz feuern eine Abfrage zu aktualisieren IsDeleted-Flag auf True, aber seine nicht praktikable Lösung, wenn ich sage 5000 Datensätze auf einmal gelöscht werden. Ich habe gehört und implementiert das Batchupdate-Konzept für "Einfügen" mehrere Datensätze auf einmal, aber ich verstehe nicht, wie kann ich Batch-Update verwenden, um mehrere Datensätze bei nur einem DB-Aufruf zu aktualisieren, bitte helfen, Der Batch-Update-Code zum Einfügen ist als folgtBatch-Update für die Aktualisierung mehrerer Datensätze im Frühjahr mvc mit mysql
private static final String INSERT_USER_PERMISSION =
"INSERT INTO permission_transaction(permissionId,userId,isDeleted) "
+ "VALUES(?,?,?)";
@Transactional
public void addPermission(final UserVO userVo, final List<PermissionVO> permissionVoList)
throws Exception {
logger.info("Adding user permission, for userId: "+userVo.getUserId());
try {
jdbc.batchUpdate(INSERT_USER_PERMISSION, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
PermissionVO permissionVo = permissionVoList.get(i);
ps.setInt(1, permissionVo.getPermissionId());
ps.setInt(2, userVo.getUserId());
ps.setBoolean(3, false);
}
@Override
public int getBatchSize() {
return permissionVoList.size();
}
});
logger.info("Exiting addPermission, for userId: "+userVo.getUserId());
}catch (Exception e) {
logger.error("Error in adding user permission: " + e.getMessage(), e);
throw e;
}
}