2022. 9. 22. 23:28
반응형

Spring Boot 프로젝트에 기반한 게시물

 

JdbcTemplate을 이용하려고 보니까 파라미터를 물음표로 적어야 된다는 점이 마음에 걸렸다.

sql에 추가한 물음표(?)와 파라미터를 잘 매칭시켜야 하는데 실수가 발생할 수 있다.

mybatis나 C#의 Dapper와 같이 파라미터의 이름을 이용할 수 있으면 편한 것 같다.

 

그래서 찾아보니 NamedParameterJdbcTemplate이라는게 있었다.

이름만 봐도 대충 어떤 방식인지 짐작할 수 있었다.

 

 

간단한 테이블을 일단 하나 만들어뒀다. (MariaDB)

create table demo (
  id int primary key auto_increment,
  description varchar(100),
  entrydate datetime default current_timestamp
)

 

우선 Spring Boot 프로젝트의 application.properties 또는 application.yml 파일에 datasource를 설정한다.

 

그런 다음 Repository 파일을 만들고 그 안에 Autowired를 이용하여 NamedParameterJdbcTemplate을 선언해주기만 하면 별도의 노력없이 간단히 데이터베이스에 접근이 가능했다.

insert 할 때 자동으로 생성되는 auto_increment 값을 구하는 것도 GeneratedKeyHolder를 이용하면 가능했다.

update 기능을 실행할 때 반환되는 값은 영향을 받은 row 개수인 것으로 보였다.

queryForList의 반환 형식은 List<Map<String, Object>> 와 같은 아주 친숙한 형태였다.

 

sql문에 파라미터를 활용하려면 :description 과 같이 파라미터 이름 앞에 콜론(:)을 붙여주면 된다.

그리고나서 MapSqlParameterSource 안에 파라미터를 담아주면 된다.

 

간단한 테스트를 해보면 잘 작동하는 것을 확인할 수 있다.

https://github.com/juragi/spring-demo/commit/60e5303a7f6e3ba1572e5923b4109d12e5e1f789

 

NamedParameterJdbcTemplate test · juragi/spring-demo@60e5303

Show file tree Showing 2 changed files with 53 additions and 0 deletions.

github.com

 

반응형