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 파일을 디컴파일러로 까보면 패키지가 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 |
반응형
'Database' 카테고리의 다른 글
SQL, INSERT INTO 사용법 (데이터 삽입) (0) | 2023.04.16 |
---|---|
MYSQL DB 백업하는 방법 (0) | 2023.04.12 |
JDBC란? (ojdbc, mysql-connector, mssql-jdbc) (0) | 2023.04.11 |
MSSQL, 비클러스터형 인덱스 만드는 방법 (0) | 2023.04.10 |
MSSQL, nvarchar와 nchar 차이 (0) | 2023.04.10 |