빠에야는 개발중

스프링 퀵 스타트 : chap 2-2 본문

공부/스프링

스프링 퀵 스타트 : chap 2-2

빠에야좋아 2018. 1. 27. 03:07

Spring JDBC

이번에는 스프링 JDBC를 사용해서 DB와 연동해보자. 기존 JDBC에서는 개발자가 연결을 모두 담당하여 번거롭고 긴 코드를 짜고 관리해야만 했다. 이를 해결하기 위해서 스프링 JDBC를 적용하면 개발자는 연결에 대해 알 필요가 없어지고 쿼리에만 집중할 수 있게 된다.


먼저 JDBCTemplate 클래스 설정을 해주자. 우선 dataSource를 설정해야한다.




xml 코드들과 properties 파일 정보



빈 등록을 해주었기 때문에 Autowired 어노테이션으로 의존성을 주입하여 사용하기만 하면 된다.

이전에 사용하던 JDBC 코드보다 훨씬 깔끔한 것을 알 수 있다.



이번에 사용한 jdbcTemplate은 RowMapper를 사용하여 객체 매핑을 해줘야한다. 이전에 사용해보았던 sqlSessionTemplate보다는 조금 불편하다고 느꼈다.


트랜잭션 처리

저번 시간에 배웠던 AOP를 사용하여 트랜잭션 처리를 해주자. 라이브러리는 스프링에서 제공해주는 DataSourceTransationManager를 사용한다. 라이브러리를 어드바이스로 등록만 해주면 스프링 컨테이너가 알아서 설정을 참조하여 클래스를 생성한다. 

이 때, 라이브러리 안의 메소드명을 모르기 때문에 aop:aspect 속성이 아닌 aop:advisor 속성을 사용한다.




테스트 




삽입 로직을 위와 같이 같은 seq 값을 두번 삽입하도록 변경한다. 그러면 두번째 삽입 과정에서 예외가 발생할 것이고, 트랜잭션 매니저가 롤백을 수행할 것이다.



테스트가 잘 수행되었음을 보여준다.




JDBC를 다뤄보면서 일일히 RowMapper에 매핑을 시켜줘야한다는 점이 불편했고 이는 후에 myBatis나 JPA를 사용하게 되면서 해결될 것이라고 생각한다.

트랜잭션은 남이 짜놓은 코드상으로만 보던 것이었는데 직접 코딩을 해보니 그 필요성을 느낄 수 있었다.

'공부 > 스프링' 카테고리의 다른 글

스프링 퀵 스타트 : chap 3-2  (1) 2018.01.30
스프링 퀵 스타트 : chap 3-1  (379) 2018.01.29
스프링 퀵 스타트 : chap 2-1  (418) 2018.01.26
스프링 퀵 스타트 : chap 1-2  (392) 2018.01.23
스프링 퀵 스타트 : chap 1-1  (0) 2018.01.21
Comments