본문 바로가기
Progamming/BoostCourse

Spring JDBC 실습

by 동그란 혜주 2019. 3. 13.
  • 들어가기 전에

이번 시간에는 실습을 통해 Spring JDBC에 대해 알아보도록 하자




  • 학습 목표

1. DTO와 DAO에 대한 개념을 이해한다.

2. Spring JDBC를 이용해 DAO를 작성할 수 있다.




  • 핵심 개념

- DTO

- DAO

- NamedParameterJdbcTemplate




  • DTO

- Data Transfer Object의 약자

- 계층 간 데이터 교환을 위한 JavaBeans

- 여기서 계층이란 컨트롤러 뷰, 비지니스 계층, 퍼시스턴스 계층을 의미

- 일반적으로 DTO는 로직을 가지고 있지 않고, 순수한 데이터 객체

- 필드와 getter, setter를 가진다. 추가적으로 toString(), equals(), hashCode() 등의 Object 메소드를 오버라이딩 할 수 있다.

- 데이터를 들고 다닐 때 하나씩 들고 다니면 불편하기 때문에, 어떤 하나의 가방처럼 담아서 데이터들을 한꺼번에 갖고 다니는 용도




  • DAO

- Data Accescc Object의 약자

- 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체

- 보통 데이터베이스를 조작하는 기능을 전담하는 목적으로 만들어짐




  • ConnectionPool

- DB연결은 비용이 많이 든다.

- 커넥션 풀은 미리 커넥션을 여러개 맺어 둔다.

- 커넥션이 필요하면 커넥션 풀에게 빌려서 사용한 후 반납한다.

- 커넥션을 반납하지 않으면 ConnectionPool에 사용한 Connection이 없어서 프로그램이 늦어지거나 심할 경우에는 장애가 발생한다.






  • DataSource

- 커넥션 풀을 관리하는 목적으로 사용되는 객체

- DataSource를 이용해 커넥션을 얻어오고 반납하는 등의 작업을 수행

- DataSource로부터 얻은 Connection에 close() 메소드는 반납하도록 구현되어있다.




  • Spring JDBC를 이용한 DAO 작성 실습


- Spring 컨테이너인 ApplicationContext는 설정 파일로 ApplicationConfig라는 클래스를 읽어들인다.

- ApplicationConfig에는 componentScanAnnotation이 DAO 클래스를 찾도록 설정하낟.

- 찾은 모든 DAO 클래스는 Spring 컨테이너가 관리하게 된다.

- Application Context는 DBConfig 클래스르 import 하게 된다.

- DBConfig 클래스에서는 데이터 소스와 트랜잭션 메니저 객체를 생성한다.

- DAO는 필드로 NamedParameterJdbcTemplate과 SimpleJdbcInsert를 가진다. 두 개의 객체 모두 SQL의 실행을 편리하게 하도록 Sprint JDBC에서 제공하는 객체이기 때문에 DB 연결을 위해 내부적으로 DataSource를 사용하기 때문이다.

- 이 두개의 객체는 RoleDao 생성자에서 초기화를 하게된다.

- RoleDao 생성자에서 초기화된 두 개의 객체를 이용해서 RoleDao의 메소드를 구현하게 된다.

- Spring JDBC를 사용하는 사용자는 파라미터와 SQL을 가장 많이 신경써야 된다.

- SQL은 RoleDao SQL의 상수로 정의를 해놓음으로써 나중에 SQL이 변경될 경우에 좀 더 편하게 수정할 수 있도록 하였다.

- 한 건의 Role 정보를 저장하고 전달하기 위한 목적으로 Role DTO가 사용되고 있다.




  • 실습

- daoexam


'Progamming > BoostCourse' 카테고리의 다른 글

Spring MVC 구성요소  (0) 2019.03.14
Spring MVC란?  (0) 2019.03.14
Spring JDBC 소개  (0) 2019.03.13
Java Config를 이용한 설정  (0) 2019.03.13
XML 파일을 이용한 설정  (0) 2019.03.13

댓글