IT/Database

com.mysql.cj.jdbc.Driver와 com.mysql.jdbc.Driver 차이 (23.04.25)

성준하이 2023. 4. 28. 23:32
반응형

데이터베이스와 연동하는 개발을 하기 위해서는 jdbc를 필수적으로 필요로 한다.

그중 오픈라이선스로 무료인 mysql을 개인으로는 많이 사용하고 필자 역시 사용하는데,

driver가 이름은 같지만 도메인 자체가 다른 제목과 같은 두 드라이버에 대한 차이를 알아보려고 한다.

 

- com.mysql.cj.jdbc.Driver

- com.mysql.jdbc.Driver

 

둘의 차이는 사용하는 mysql connector의 버전이다. com.mysql.jdbc.Driver는 Connector/J 5.x 버전까지 사용되었고
Connector/J 8.x 버전부터는 com.mysql.cj.jdbc.Driver를 사용해야 한다. 

 


실제로 mysql-connector-java-8.0.22.jar 파일을 디컴파일러로 까보면 패키지가 com.mysql > cj > Driver.class 순으로 진입되는 걸 확인할 수 있다.

 

이외에도 버전 변화와 함께 아래의 클래스 및 인터페이스의 명칭에도 변화가 있었는데 아래와 같다.

기존 변경
com.mysql.jdbc.ExceptionInterceptor com.mysql.cj.exceptions.ExceptionInterceptor
com.mysql.jdbc.StatementInterceptorV2 com.mysql.cj.interceptors.QueryInterceptor
mysql.jdbc.ConnectionLifecycleInterceptor com.mysql.cj.jdbc.interceptors.ConnectionLifecycleInterceptor
com.mysql.jdbc.AuthenticationPlugin com.mysql.cj.protocol.AuthenticationPlugin
com.mysql.jdbc.BalanceStrategy com.mysql.cj.jdbc.ha.BalanceStrategy
com.mysql.jdbc.jdbc2.optional.MysqlDataSource com.mysql.cj.jdbc.MysqlDataSource
com.mysql.jdbc.jdbc2.optional.MysqlDataSourceFactory com.mysql.cj.jdbc.MysqlDataSourceFactory
com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource com.mysql.cj.jdbc.MysqlConnectionPoolDataSource
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource com.mysql.cj.jdbc.MysqlXADataSource
com.mysql.jdbc.jdbc2.optional.MysqlXid com.mysql.cj.jdbc.MysqlXid

 

반응형