JdbcTemplate using Spring Boot provides update(String sql, Object... args) method which supports upsert (nsert or update if exists) operation. You can use this method to perform an upsert operation in the database.
Code Snippet:String sql = "INSERT INTO employee (employeeId, employeeName, employeeDateOfBirth, employeeDepartment, employeeJoiningDate, employeeSalary) " +
"VALUES (:id, :name, :dob, :department, :joiningDate, :salary) " +
"ON DUPLICATE KEY UPDATE " +
"employeeName=VALUES(employeeName), " +
"employeeDateOfBirth=VALUES(employeeDateOfBirth), " +
"employeeDepartment=VALUES(employeeDepartment), " +
"employeeJoiningDate=VALUES(employeeJoiningDate), " +
"employeeSalary=VALUES(employeeSalary)";
MapSqlParameterSource[] batchParams = employees.stream()
.map(employee -> new MapSqlParameterSource()
.addValue("id", employee.getEmployeeId())
.addValue("name", employee.getEmployeeName())
.addValue("dob", Date.valueOf(employee.getEmployeeDateOfBirth()))
.addValue("department", employee.getEmployeeDepartment())
.addValue("joiningDate", Date.valueOf(employee.getEmployeeJoiningDate()))
.addValue("salary", employee.getEmployeeSalary()))
.toArray(MapSqlParameterSource[]::new);
namedParameterJdbcTemplate.batchUpdate(sql, batchParams);
Related Examples:
- Spring Boot: NamedParameterJdbcTemplate batch insert example
- JdbcTemplate Batch Insert Example using Spring Boot
- Spring Boot: JDBCTemplate BatchUpdate Update Query Example
- Spring Boot: JdbcTemplate Update Query With Parameters Example
- JDBCTemplate Querying Examples with Spring Boot 3
Provide Feedback For This Article
We take your feedback seriously and use it to improve our content. Thank you for helping us serve you better!
😊 Thanks for your time, your feedback has been registered!
Comments & Discussion
Facing issues? Have questions? Post them here! We're happy to help!