=> 속도면에서 JDBC가 조금 더 빠를 수 있다. 하지만 이 차이가 사용자에게 지장을 줄 만큼 큰 차이가 아니다. 오히려 유지보수 면에서 개발자가 들이는 시간이 JDBC가 더 클 수 있다. 따라서 속도가 느린 일부분만 JDBC만 사용하는 방법도 있다.
spring.datasource.initialization-mode= always
spring.jpa.hibernate.ddl-auto= none
@Autowired
NamedParameterJdbcTemplate jdbcTemplate;
private static final String SELECT_PERSON_BY_ID =
"SELECT * FROM person " +
"WHERE id = :id";
public PersonData getPersonById(Long id){
return jdbcTemplate.queryForObject(
SELECT_PERSON_BY_ID,
new MapSqlParameterSource().addValue("id", id),
new BeanPropertyRowMapper<>(PersonData.class));
}
private static final String INSERT_PERSON =
"INSERT INTO person (name, age, favorite_composer) " +
"VALUES(:name, :age, :favoriteComposer)";
public Long addPerson(PersonData personData) {
KeyHolder key = new GeneratedKeyHolder();
jdbcTemplate.update(
INSERT_PERSON,
new BeanPropertySqlParameterSource(personData),
key);
return key.getKey().longValue();
}