담주 미션은 JdbcTemplate으로 한다길래 이게 뭔지 간략하게 알아봄
스프링은 JdbcTemplate 템플릿 클래스를 제공한다. JdbcTemplate은 관계형 데이터베이스 SQL과 JDBC의 작동을 쉽게 해준다.
대부분의 raw JDBC 코드는 커넥션, statement, resulset등을 열고닫는 코드와 그에 대한 예외처리 등의 코드가 길게 나열해야해서 이게 어떤 기능을 위한 것인지 알아보기가 힘들정도로 되어있는데, JdbcTemplate이 이런 모든 것을 쉽게 해결해준다.
JdbcTemplate을 쓰면서 그런 chore같은 일은 신경 쓰지 않고 원하는 구현 코드에 집중할 수 있게 도와준다.
spring-jdbc
를 디펜던시에 넣으면, Spring Boot는 자동으로 JdbcTemplate
을 생성한다. 그리고 @Autowired
를 붙인 JdbcTemplate 필드를 선언하면 자동으로 로드되서 사용할 수 있게 된다.
@Autowired
JdbcTemplate jdbcTemplate;
기본적으로 JdbcTemplate은 직접 쿼리문을 작성해야한다. 그리고 Insert, Update, Delete가 성공적으로 실행이 되면 1을 리턴하고 아니면 0을 리턴하도록 되어있다.
raw JDBC 에서는 쿼리문 작성할 때 편의를 위해서 query의 value 값에 ?
를 주고 PreparedStatement로 나중에 주입해줄 수 있는데, JdbcTemplate도 편리하게 아래처럼 사용할 수 있다.
query = "INSERT INTO Student Values(?, ?)";
this.jdbcTemplate.update(query, "Kyu", 25);