programing

Driver Manager가 h2 데이터베이스에 연결할 때 mariadb 드라이버를 사용하려고 합니다.

easyjava 2023. 9. 26. 22:41
반응형

Driver Manager가 h2 데이터베이스에 연결할 때 mariadb 드라이버를 사용하려고 합니다.

몇 가지 테스트를 하고 있는데 다음과 같은 예외를 받았습니다.

java.lang.IllegalArgumentException: Invalid connection URL url  dbc:h2:db/test
at org.mariadb.jdbc.JDBCUrl.parse(JDBCUrl.java:144)
at org.mariadb.jdbc.Driver.connect(Driver.java:95)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)

내가 사용하는 코드:

Class.forName("org.h2.Driver"); //load h2 driver
String connectionUrl = "jdbc:h2:db/test";
Connection conn = DriverManager.getConnection(connectionUrl, "sa", "");

mariadb/mysql과 관련된 것도 테스트하기 때문에 h2 드라이버(이클립스 프로젝트) 외에 mariadb 드라이버도 클래스 경로에 있습니다.클래스 경로에서 mariadb 드라이버를 제거하면 연결이 됩니다.

내가 아는 한 클래스 경로에 여러 개의 jdbc 드라이버가 있을 수 있어야 합니다. 아니면 내가 뭔가 잘못 이해한 것이 있습니까?

(h2는 버전 1.3이며, mariadb-java-client는 1.2.0입니다.)

편집: mariadb-java-client 1.2.2를 사용하면 문제가 제거됩니다.

이게 mariadb-jdbc-driver의 버그였음을 확인할 수 있습니다.

https://mariadb.atlassian.net/plugins/servlet/mobile#issue/CONJ-167

mariadb-java-client 1.2.2로 업데이트한 후 문제가 나타나지 않았기 때문에 이것이 일종의 버그라고 추측합니다.

언급URL : https://stackoverflow.com/questions/32580352/drivermanager-tries-to-use-mariadb-driver-when-connecting-to-h2-database

반응형