İsmi update olmasına rağmen Insert, Delete, Update için kullanılabilir.
update metodu - sql + args
İmzası şöyle. Sonuç olarak kaç tane satırın etkilendiğini döner.
public int update(String sql) throws DataAccessException
public int update(String sql, Object... args) throws DataAccessException public int update(Stringsql, Object[] args, int
[] argTypes)
throws DataAccessException
1. args parametreleri teker teker veya Object[] şeklinde geçilebilir.
2. Sonuç olarak kaç tane satırın etkilendiğini belirten bir int döner
Örnek
Şöyle yaparız
String INSERT_USER_QUERY = "INSERT INTO USER(id,first_name,last_name,gender,age)
VALUES(?,?,?,?,?)";String UPDATE_USER_QUERY = "UPDATE user SET first_name=?,last_name=?,gender=?,age=?
WHERE id=?";String DELETE_USER_QUERY = "DELETE FROM user WHERE id=?";@Overridepublic int save(User user) {return jdbcTemplate.update(INSERT_USER_QUERY, new Object[] { user.getId(),
user.getFirstName(),user.getLastName(), user.getGender(), user.getAge() });}@Overridepublic int update(User user) {return jdbcTemplate.update(UPDATE_USER_QUERY, new Object[] { user.getFirstName(),
user.getLastName(),user.getGender(), user.getAge(), user.getId() });}@Overridepublic int delete(int id) {return jdbcTemplate.update(DELETE_USER_QUERY, new Object[] { id });}
Örnek
Parametre kullanmak için şöyle yaparız.jdbctemplate.update(sql, arg1, arg2);
ÖrnekDizi kullanmak için şöyle yaparız
jdbctemplate.update(sql, new Object[]{arg1, arg2});
Kaç satırın etkilendiği sonucunu almak için şöyle yaparız.String insertQuery = "<db query for insert>";
Object[] args = new Object[]{Integer.valueOf(...), ...,...,...,null,null};
int result = jdbcTemplate.update(insertQuery, args);
Örnek - insertOracle'da sequence kullanmak için şöyle yaparız.
String sql = "insert into Employee values (id_seq.nextval, ?, ?, ?)";
jdbcTemplate.update(sql, name, age, salary);
Örnek - insertŞöyle yaparız.
jdbcTemplate.update("INSERT INTO Test (ID, NAME) VALUES (?, ?)",
new Object[]{101, "Dave"}
);
update metodu - sql + PreparedStatementCreatorÖrnek
Şöyle yaparız.
import org.springframework.jdbc.support.GeneratedKeyHolder;
import org.springframework.jdbc.support.KeyHolder;
final String INSERT_SQL = "insert into my_test (name) values(?)";
final String name = "Rob";
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(
new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection connection)
throws SQLException {
PreparedStatement ps =
connection.prepareStatement(INSERT_SQL, new String[] {"id"});
ps.setString(1, name);
return ps;
}
},
keyHolder);
ÖrnekPreparedStatementCreator yerine lambda kullanılabilir. Şöyle yaparız
jdbcTemplate.update(connection -> {PreparedStatement ps = connection.prepareStatement(
"insert into my (id , file, file_name ) values ( ? , ? , ? )",new String[]{"id"});ps.setInt(1, id);ps.setString(2, base64EncodedFile);ps.setString(3, fileName);return ps;});
Hiç yorum yok:
Yorum Gönder