원래는 드라이버매니저를 통해서 커넥션을 얻어왔다.
DataSource - 커넥션을 관리하는 주체
- DataSource를 통해 Connection을 얻어 올 수 있다.
- 하지만, 매번 커넥션을 생성하고 클로즈하면, 많은 리소스가 소비된다.
- 이런 문제를 해결하기 위해 등장한 것이 ConnectionPool
- Datasource를 통해서 커넥션 풀에서 커넥션을 가져올 수 있다.
- close해도 실제로 끊는 것이아니라 커넥션 풀에 반환하는 것
DBCP(DataBase Connection Pool)

- HikariCP - 가장 많이 사용하는 DBCP, 오픈소스
- 히카리CP는Datasource 구현체

- spring-boot-starter-jdbc
- type으로 DBCP타입을 설정해준다.

connectionPoolSize 같은 세팅 가능
테스트 인스턴스
- JUnit5 는 테스트 인스턴스 생성 기본 단위가 메소드
package com.effortguy.junit5; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertTrue; public class TestInstanceAnnotation { public int i=0; @Test void test_1() { assertTrue(++i == 1); } @Test void test_2() { assertTrue(++i == 1); } }
이거 테스트 결과가 둘다 성공으로 나옴
- @TestInstance(TestInstance.Lifecycle.PER_CLASS) 로 설정하면 하나의 클래스당 인스턴스 하나 생성함....
- perMethod일 때는 @BeforeAll을 static으로 만들어야하는데, perclass는 static아니어도 됨.
- @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
JdbcTemplate
- RowMapper 인터페이스 구현을 통해서 SQL의 결과를 객체에 매핑
SELECT 할때는
- query() 나queryFor~() 시리즈 사용
INSERT, UPDATE, DELETE
- update() 사용
jdbc 콜백패턴. (토비의 스프링 보라고 그래서 넘겼음)