스프링 부트

[SpringBoot] ChatGPT야! JDBC, MyBatis, HikariCP 에 대해서 설명해주겠니?

h__hj 2023. 3. 28. 22:14

# ChatGPT야! JDBC, MyBatis, HikariCP 에 대해서 설명해주겠니?

 얼추 알고있는 지식을 ChatGPT가 잘 정리해주었습니다. 

 

# 질문

Spring boot 에서 데이터베이스 연결 시 jdbc, mybatis, HikariCP 를 모두 사용하여 연동 할 때의 각자의 역할이 무엇인지 설명해줄래?

 

# 답변

Spring Boot에서 JDBC, MyBatis, HikariCP를 모두 사용하여 데이터베이스를 연동하려면, 각각의 역할을 적절히 구분하여 설정해야 합니다.

 

JDBC의 역할

 JDBC의 역할 JDBC는 데이터베이스에 직접 접속하여 SQL문을 실행하고 결과를 받아오는 Java API입니다. Spring Boot에서 JDBC를 사용하여 데이터베이스에 연결하면, DataSource를 생성하여 DB 커넥션을 관리하고 Connection Pooling을 수행할 수 있습니다. 따라서 JDBC의 역할은 기본적인 DB 커넥션 관리와 Connection Pooling을 수행하는 것입니다.

 

MyBatis의 역할

 MyBatis는 SQL Mapper Framework로, SQL문과 자바 객체를 매핑하여 데이터베이스에 쉽게 접근할 수 있도록 도와주는 프레임워크입니다. MyBatis를 사용하면 SQL문을 XML 또는 Annotation으로 작성하여 데이터베이스에 접근할 수 있습니다. Spring Boot에서 MyBatis를 사용하면, MyBatis-Spring을 이용하여 SqlSessionFactory를 생성하고, Mapper를 관리하여 DB 커넥션을 관리하고 Connection Pooling을 수행할 수 있습니다. 따라서 MyBatis의 역할은 SQL문과 자바 객체를 매핑하고, SqlSessionFactory를 생성하여 Mapper를 관리하는 것입니다.

 

HikariCP의 역할

 HikariCP는 가볍고 빠른 커넥션 풀 라이브러리입니다. HikariCP를 사용하면 DataSource를 생성하여 DB 커넥션을 관리하고 Connection Pooling을 수행할 수 있습니다. Spring Boot에서 HikariCP를 사용하면, DataSource를 설정할 때 HikariDataSource를 사용하여 Connection Pooling을 수행할 수 있습니다. HikariCP의 역할은 DataSource를 생성하여 커넥션 풀링을 수행하는 것입니다.

 

 따라서 Spring Boot에서 JDBC, MyBatis, HikariCP를 모두 사용하여 데이터베이스를 연동할 때, JDBC는 기본적인 DB 커넥션 관리와 Connection Pooling을 수행하고, MyBatis는 SQL문과 자바 객체를 매핑하고, SqlSessionFactory를 생성하여 Mapper를 관리하며, HikariCP는 DataSource를 생성하여 커넥션 풀링을 수행합니다. 이러한 역할 분담을 통해 효율적인 데이터베이스 연결을 구현할 수 있습니다.

 

라고 함. 정말 똑똑한 친구네,,,,

 

# 빙 AI 의 답변

Spring Boot에서 데이터베이스 연결 시

JDBC는 Java Database Connectivity의 약자로 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API입니다.

 

MyBatis는 SQL Mapper Framework로 SQL을 직접 작성하지 않고 XML 파일에 SQL을 작성하여 사용할 수 있습니다.

 

HikariCP는 가볍고 빠른 처리속도로 이점이 있는 데이터베이스 커넥션 풀입니다. 

Spring Boot 2.0 이전에는 tomcat-jdbc를 사용하였으나 Spring Boot 2.0 이후부터 HikariCP를 기본 옵션으로 채택하고 있습니다.**12**

즉, Spring Boot에서는 JDBC를 사용하여 데이터베이스에 접속하고 MyBatis를 사용하여 SQL을 작성하며, HikariCP를 사용하여 데이터베이스 커넥션 풀을 구성합니다.**12**

 

# 짧게 정리하자면.

JDBC는 기본적인 DB 커넥션을 맺어주는 역할을 하고, 

MyBatis는 SQL문과 자바 객체를 매핑하고, SqlSessionFactory를 생성하여 SqlSession을 관리하며,

HikariCP는 DataSource를 생성하여 커넥션 풀링을 수행함!

 

 누가 알려주기 힘든 정보를 얘네가 알려주고 있어 ChatGPT와 빙 AI 검색하는게 많아지고 있다. 

근데 다 믿으면 안됨,,,코드 작성해 달라니까 없는 함수로 설정함,,, 이 함수는 없다니까 미안하데