- 테스트 클래스에 Annotation을 붙여 사용한다.
- 각 단위 테스트가 끝날때마다 Commit(DB에 반영하는 것)을 하지 않고 Rollback 시킨다. 즉, query를 다 날리고 끝나면 DataBase에 반영을 하지 않는다. DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.
- 마찬가지로 테스트 클래스에 Annotation을 붙여 사용한다.
- 스프링 컨테이너와 테스트를 함께 실행한다.
- 자바에서 DB 프로그래밍을 하기 위해 사용하는 API
- 데이터베이스의 종류에 영향을 받지 않는다 !
- 개발자가 JDBC를 사용할 때 발생하는 반복적인 문제를 해결해준다. 문제에는 다음과 같은 것들이 있다.
- 커넥션 획득
- statement를 준비하고 실행
- 결과를 반복하도록 루프를 실행
- 커넥션 종료, statement 및 resultset 종료
- 트랜잭션을 다루기 위한 커넥션 동기화
- 예외 발생 시 스프링 예외 변환기 실행
- 쉽게 말해 JdbcTemplate은 개발자가 JDBC 기술을 쉽게 사용할 수 있도록 도와주는 클래스이다.
Connection Pool
- 순수 jdbc로 데이터베이스에 접근을 하면, 데이터베이스에 접근할 때마다 connection을 맺고 끊는 작업을 한다. 이 connection을 맺고 끊는 작업을 줄이기 위해 미리 connection을 생성해 두고, 데이터베이스에 접근하고자 하는 사용자에게 미리 생성된 connection을 제공하고 돌려받는다. 이 connection들을 모아두는 장소를 connection pool이라 한다.
DB버전의 싱글톤 패턴이라고 생각하면 될 것 같다.DataSource
- DB 연결 정보를 저장하고, Connection을 생성하고, Connection Pool에 등록하고 관리하는 것이 DataSource이다 !
- Datasource는 java 에서 connection pool을 지원하기 위한 인터페이스이다.
- Database의 반환 결과인 ResultSet을 객체로 반환해주는 클래스이다.
내용 추가 예정