[스프링부트 (4)] 스프링부트 DB 연동 (MariaDB, MyBatis, HikariCP)안녕하세요. 갓대희 입니다. 이번 포스팅은 [ SpringBoot DB 연동] 입니다. : ) Show 0. 들어가기 앞서 Spring Boot를 사용하면서 DB를연결하기 위해 JDBC Connection Pool이란걸 사용 해보셨을 것이다. ▶ 커넥션풀(Connection Pool)이란?1) 정의 - 풀(Pool)속에 데이터베이스와의 연결(커넥션)들을 미리 만들어 두고 데이터베이스에 접근시 풀에 남아있는 커넥션중 하나를 받아와서 사용한뒤 반환하는 기법. 2) 사용이유 - 웹 애플리케이션은 다수의 사용자가 데이터베이스에 접근해야 하는 상황에 사용자들이 요청할때마다 연결을 만들고 해제하는 과정을 진행하게되면 비효율적이다. Spring Boot에 JDBC를 통해 mariadb(mysql) 연결해보자!
1. pom.xml ▶ Dependency 추가
- gradle의 경우
2. application.properties ▶ driver 및 연결 정보 설정 추가
3. testMapper.xml 생성 ▶ mapper 추가 - 경로 : resources\mybatis\test\testMapper.xml ex)
※ 여기서 간단한 설정을 통해 resultType에 계속 풀패키지를 명시하지 않도록 할 수 있다.
2) mapper.xml 에서 resultType에 클래스명만 명시
4. Vo 클래스 생성(model, dto, vo) - 경로 : com.god.bo.test.vo.TestVo ex)
5. Mapper 인터페이스 생성 - 경로 : com.god.bo.test.mapper.TestMapper ex)
6. Service 클래스 생성 - TestMapper interface를 autowired 하여 메서드를 콜한다. ex)
7. Controller 생성 및 Service 호출 - 위에서 생성한 Service의 메서드를 호출하는 Controller를 생성 하도록 하자. ex)
8. 화면에 맞게 출력하자. ex)
Application을 실행하여 해당하는 경로의 페이지를 호출하여 보자. 올바르게 데이터 베이스가 연동 되어, 화면에 노출되는것을 볼 수 있다. 여기까지 했다면 Mybatis, MariaDB연동에 성공 하였다. 9. HikariCP 1) Spring Boot
2.0 이전 : Tomcat JDBC Connection Pool를 Default로 사용하였다. 결국 예전 버전에서는 명시하여 사용해야했지만, 이제는 application.properties에 간단한 설정만 한다면 쉽게 사용할 수 있다. ▶ 설정 예시
혹시나 하여 HikariConfig클래스 파일도 확인해 보았다. 여러 프로퍼티를 설정할수 있는 것 같다. ▶ HikariCP 옵션- HikariCP 옵션 (다음 github에서 더 자세히 나와 있다.) 참고 : https://github.com/brettwooldridge/HikariCP - HikariCP설정의 시간 단위는 밀리세컨즈(ms)이다. ◎ autoCommit (default: true) - auto-commit설정 ◎ connectionTimeout (default : 30000(30초)) ◎ validationTimeout (default : 5000(5초)) ◎ maximumPoolSize (default: 10) ◎ idleTimeout (default : 600000(10분)) ◎ minimumIdle (default: same as maximumPoolSize) ◎ maxLifetime (default : 1800000(30분)) ◎ connectionTestQuery (default : 없음) ◎ leakDetectionThreshold |