스프링 부트

[SpringBoot] ChatGPT야! DataSource, SqlSessionFactory, SqlSessionTemplate 에 대해서 설명해주겠니?

h__hj 2023. 3. 28. 22:25

# ChatGPT야! DataSource, SqlSessionFactory, SqlSessionTemplate 에 대해서 설명해주겠니?

 라고 GPT님에게 여쭤보았습니다.

 

# 질문

Spring Boot 에서 데이터 베이스 설정 시 DataSource, SqlSessionFactory, SqlSessionTemplate 의 역할에 대해 각각 설명해줄래?

 

# 답변

물론이죠! Spring Boot에서 데이터베이스 설정 시 DataSource, SqlSessionFactory, SqlSessionTemplate의 역할에 대해 간단히 설명해드릴게요.

 

DataSource 

 DataSource는 데이터베이스와의 연결을 생성하고 관리하는 객체입니다. 이를 사용하여 데이터베이스 연결을 얻고 반환할 수 있습니다. 일반적으로 Spring Boot에서는 HikariCP와 같은 커넥션 풀 라이브러리를 사용하여 DataSource를 구성합니다.

 

SqlSessionFactory

 SqlSessionFactory는 MyBatis에서 사용하는 Session 객체를 생성하는 팩토리입니다. 데이터베이스 연결 정보와 매핑 파일 등을 이용하여 SqlSession을 생성합니다. SqlSessionFactory는 애플리케이션 전체에서 단 한 번만 생성되며, 여러 SqlSession을 생성할 수 있습니다.

 

SqlSessionTemplate

 SqlSessionTemplate은 MyBatis에서 SqlSession을 대체하는 객체입니다. SqlSessionTemplate은 SqlSessionFactory를 이용하여 SqlSession을 생성하고, SQL 실행 후 자동으로 커밋하거나 롤백합니다. 또한, SqlSession을 쓰레드세이프하게 사용할 수 있도록 도와줍니다.

 

 일반적으로 Spring Boot에서는 DataSource를 생성하고, SqlSessionFactory를 생성한 후 SqlSessionTemplate을 생성합니다. 이를 통해 데이터베이스와의 연결과 SQL 실행을 담당하는 객체들을 구성합니다.