[java] JDBC Template

권재현·2024년 11월 5일

JAVA

목록 보기
9/11

JdbcTemplate를 사용하는 이유

  • JdbcTemplate가 아닌 Connection으로 DB를 접근하는 경우 모든 메서드에서 Connection을 가져오고 PreparedStatment를 가져와 sql을 수행하고 자원을 해제해주는 별도의 로직까지 작성해주어야한다. 이러한 경우 핵심적인 로직을 제외한 나머지 별도의 로직을 반복적으로 작성하게 되기때문에 다소 복잡해진다. 그래서 이럴때 도입을 해볼만한 DB 접근 기술 중 하나가 바로 JdbcTemplate이다.
  • JdbcTemplate를 도입하면 아래와 같은 장점을 취할 수 있다.
    - spring-jdbc 라이브러리에 포함되어있기 때문에 기본적으로 사용이 가능하다.
    - JDBC를 직접 사용할때 발생하는 반복 작업을 대신 처리해준다.
    - 개발자는 SQL 작성, 전달할 파라미터 정의, 응답 값 매칭만 하면 해결된다.

사용법

Insert

다음은 JdbsTemplate를 이용한 Insert 메서드이다.

 @Override
    public ScheduleResponseDto saveSchedule(Schedule schedule) {
        // INSERT Query를 직접 작성하지 않아도 된다.
        SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate);
        jdbcInsert.withTableName("schedule").usingGeneratedKeyColumns("id");

        Map<String, Object> parameters = new HashMap<>();
        parameters.put("schedule_name", schedule.getSchedule_name());
        parameters.put("schedule_content", schedule.getSchedule_name());
        parameters.put("schedule_pw", schedule.getSchedule_name());
        parameters.put("schedule_st_date", schedule.getSchedule_name());
        parameters.put("schedule_ed_date", schedule.getSchedule_name());

        // 저장 후 생성된 key값을 Number 타입으로 반환하는 메서드
        Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(parameters));
        String message = "";
        if(key.intValue() > 0){
            message = "success";
        }
        return new ScheduleResponseDto(message);
    }

추후 작성할 예정

Update

profile
여전히 헤매이고 있습니다.

0개의 댓글