jdbctemplate3 어떤 데이터 접근 기술을 선택하는 것이 좋을까? 비즈니스 상황과 현재 프로젝트 구성원의 역량에 따라서 결정하는 것이 맞다고 생각한다. JdbcTemplate이나 MyBatis같은 기술들은 SQL을 직접 작성해야하는 단점이 있지만 기술이 단순하기 때문에 SQL에 익숙한 개발자라면 금방 적응할 수 있음 JPA, 스프링 데이터 JPA, Querydsl 같은 기술들은 개발 생산성을 혁신할 수 있지만, 학습 곡선이 높기 때문에, 이런 부분을 감안해야 한다. 그리고 매우 복잡한 통계 쿼리를 주로 작성하는 경우에는 잘 맞지 않는다. 개인적으로 추천하는 방향은 JPA, 스프링 데이터 JPA, Querydsl을 기본으로 사용하고, 만약 복잡한 쿼리를 써야 하는데, 해결이 잘 안되면 해당 부분에는 JdbcTemplate이나 MyBatis를 함께 사용하는 것이다. 트랜잭.. Tech/Spring 2023. 12. 22. JdbcTemplate : SimpleJdbcInsert private final SimpleJdbcInsert jdbcInsert; public JdbcTemplateItemRepositoryV3(DataSource dataSource) { this.template = new NamedParameterJdbcTemplate(dataSource); this.jdbcInsert = new SimpleJdbcInsert(dataSource) .withTableName("item") .usingGeneratedKeyColumns("id"); // 메타 데이터로 자동 인지 // .usingColumns("item_name", "price", "quantity"); // 생략 가능 } @Override public Item save(Item item) { SqlPara.. Tech/Spring 2023. 12. 7. JdbcTemplate : 이름 지정 파라미터 이름 지정 파라미터 map 처럼 key-value 데이터 구조 만들어서 전달해야 한다. Map SqlParameterSource MapSqlParameterSource BeanPropertySqlParameterSource 1. Map Map param = Map.of("id", id); Item item = template.queryForObject(sql, param, itemRowMapper()); 2. MapSqlParameterSource Map 과 유사한데, SQL 타입을 지정할 수 있는 등 SQL에 좀 더 특화된 기능을 제공 SqlParameterSource 인터페이스의 구현체이다.ㄴ MapSqlParameterSource 는 메서드 체인을 통해 편리한 사용법도 제공한다. SqlParamet.. Tech/Spring 2023. 12. 5. 이전 1 다음 728x90 반응형