Я пытаюсь обновить только несколько столбцов с помощью JDBC.
try (Session session = getSessionFactory().openSession(); Connection connection = SessionUtil.getDBConnection(session)){
connection.setAutoCommit(false);
String query = "UPDATE Employee SET fname=?, lname=? where id=?";
prepareStatement = connection.prepareStatement(query);
for (Employee employee : employeeList) {
for(int i=1; i<=3; i++){
if(i==1){
prepareStatement.setString(i, employee.getFName());
}
else if(i==2){
prepareStatement.setString(i, employee.getLName());
}
else if(i==3){
prepareStatement.setString(i, employee.getID());
}
}
prepareStatement.addBatch();
}
prepareStatement.executeBatch();
connection.commit();
} catch (Exception e) {
e.printStackTrace();
}
Здесь я пытаюсь обновить только fname и lname в таблице Employee.
Но когда я проверяю сгенерированный SQL-запрос (из журналов show_sql), я вижу, что в запросе на обновление есть все столбцы в разделе set.
Нет ли способа ограничить количество обновляемых столбцов.
Кроме того, поскольку я обновляю только 2 столбца в запросе, который я передал PreparedStatement, разве он не должен делать то же самое вместо попытки обновить все столбцы?