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
'dev' 카테고리의 다른 글
[JavaScript] 카카오맵 API 주소 입력하여 좌표 구하기 (0) | 2022.12.26 |
---|---|
[Java/Spring] RestTemplate 이용 get, post 테스트 (3) | 2022.11.03 |
[JavaScript] input 소수 입력 (자리수 제한) (0) | 2022.10.27 |
[JavaScript] input 숫자 3자리마다 콤마(,) 넣기 (0) | 2022.10.25 |
[Java] 페이징 처리를 위해 간단히 만든 Pagination 클래스 (0) | 2022.09.04 |
[Java] 간단한 Spring Boot 프로젝트 생성, 실행 (0) | 2022.09.03 |
[JavaScript] HTML canvas 마우스로 그리기 (0) | 2022.06.17 |
[Java] 이름 마스킹 (0) | 2022.04.22 |