1. queryForObject metodu - sql + Object[] + RowMapper
İmzası şöyle
İmzası şöyle
@Deprecated
@Override
Nullable
public <T> T queryForObject(String sql, @Nullable Object[] args,
  RowMapper<T> rowMapper) throws DataAccessException {RowMapper arayüzü ile kullanılır. RowMapper ve ParameterizedRowMapper sınıfları sorgu sonuçlarını nesneye çevirmek için kullanılır. Spring'in sağladığı BeanPropertyRowMapper ile de kullanılabilir.IncorrectResultSizeDataAccessException - if the query does not return exactly one row, or does not return exactly one column in that row
Örnek
Şöyle yaparız
Şöyle yaparız
String sql = "SELECT * FROM users WHERE email = ?";
User user = jdbcTemplate.queryForObject(
  sql,
  new Object[]{email},
  new BeanPropertyRowMapper<>(User.class));Örnek
Eğer döndürülen nesne tek bir sütun ise RowMapper olmadan kullanılır. Select Name From Employee Where ID = ? sorgusu bir String yani nesne döndürür.
Örnek
Şöyle yaparız.
public Person findById(Integer id) {
  return this.template.queryForObject(this.findByIdSql, new Object[]{id},
    this.personRowMapper);
}Eğer veri tabanı boş sonuç dönerse exception fırlatır. Bunu yakalamak gerekir. 
Örnek
Şöyle yaparız
public Optional<User> findById(Integer id) {
  try {
   return Optional.ofNullable(jdbcTemplate
    .queryForObject("SELECT * FROM users WHERE id=?", userMapper,id)):
  } catch (IncorrectResultSizeDataccessException e) {
   return Optional.empty();
  }
} 
Hiç yorum yok:
Yorum Gönder