com.mysql.cj.jdbc.Driver와 com.mysql.jdbc.Driver 차이

MYSQL jdbc 드라이버를 연동할 때 로드할 클래스 경로를 입력합니다. 그런데 어느 경우엔 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 패키지 구조

 

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

 

Driver.class에는 새로운 Driver 객체를 생성하고 이 드라이버를 DriverManager에 등록하는 코드가 있습니다. 이를 통해 데이터베이스 연결을 설정할 때 이 드라이버를 사용할 수 있게 됩니다.

 

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

기존 변경
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

 

반응형

댓글

Designed by JB FACTORY