Giriş
En kolay ve nen çok kullanılan metodlardan birisi bu. Girdi olarak bir sql cümlesi ve RowMapper nesnesi alır ve List döner. Basit Select cümleler içindir.
- RowMapper ne tipten bir nesne döndürüleceğini belirtir. Eğer özel bir sonuç nesnesi kodlamak istemiyorsak RowMapper Map<String,String> bile döndürebilir.
Örnek
Şöyle yaparız. Burada RowMapper bir User nesnesi döndürüyor.
List<User> users = jdbcTemplate.query("SELECT * FROM USER", new UserRowMapper());
ÖrnekŞöyle yaparız.. Burada RowMapper bir Foo nesnesi döndürüyor.
public List<Foo> getAgateCounts(){
String sql = "select counts, flag, feed_id from cd_product_reg_stage";
return jdbcTemplate.query(sql, new InnerMapper());
}
static final class InnerMapper implements RowMapper<Foo> {
@Override
public Foo mapRow(ResultSet rs,int rowNumber) throws SQLException{
Foo obj = new Foo();
obj.setCounts(rs.getLong("counts"));
obj.setProcessed_flag(rs.getString("flag"));
obj.setFeed_id(rs.getLong("feed_id"));
return obj;
}
}
ÖrnekŞöyle yaparız. Burada RowMapper bir Student nesnesi döndürüyor.
String SELECT_ALL_STUDENTS = "SELECT Student_id, Name, Address, Info FROM Students";
public List<Student> getAllStudents(){
return jdbcTemplate.query(SELECT_ALL_STUDENTS, new RowMapper<Student>() {
@Override
public Student mapRow(ResultSet resultSet, int rowNumber) throws SQLException {
int studentId = resultSet.getInt("Student_id ");
String studentName = resultSet.getString("Name");
String studentAddress= resultSet.getString("Address");
String studentInfo= resultSet.getString("Info");
return new Student(studentId, studentName, studentAddress, studentInfo);
}
});
}
Örnek
Şöyle yaparız. Burada RowMapper olarak lambda kullanılıyor bir Tenant nesnesi döndürüyor.
Şöyle yaparız. Burada RowMapper olarak lambda kullanılıyor bir Tenant nesnesi döndürüyor.
String query = "SELECT name, id FROM tenant";
List<Tenant> tenants = jdbcTemplate.query(query, (resultSet, rowNumber) -> {
UUID id = UUID.fromString(resultSet.getString("id"));
String name = resultSet.getString("name");
return new Tenant(id, name);
});
Hiç yorum yok:
Yorum Gönder