DriverManager 在连接到 h2 数据库时尝试使用 mariadb 驱动程序
DriverManager tries to use mariadb driver when connecting to h2 database
我正在做一些测试并遇到以下异常:
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驱动(eclipse项目)之外,mariadb驱动也在classpath中。如果我从类路径中删除 mariadb 驱动程序,则连接有效。
据我所知,类路径上应该可以有多个 jdbc 驱动程序,还是我理解有误?
(h2是1.3.176版本,mariadb-java-client是1.2.0)
编辑:使用 mariadb-java-client 1.2.2 解决了问题
我认为这是某种错误,因为我在更新到 mariadb-java-client 1.2.2 后没有发现问题。
我可以确认这是 mariadb-jdbc-驱动程序
中的错误
https://mariadb.atlassian.net/plugins/servlet/mobile#issue/CONJ-167
我正在做一些测试并遇到以下异常:
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驱动(eclipse项目)之外,mariadb驱动也在classpath中。如果我从类路径中删除 mariadb 驱动程序,则连接有效。
据我所知,类路径上应该可以有多个 jdbc 驱动程序,还是我理解有误?
(h2是1.3.176版本,mariadb-java-client是1.2.0)
编辑:使用 mariadb-java-client 1.2.2 解决了问题
我认为这是某种错误,因为我在更新到 mariadb-java-client 1.2.2 后没有发现问题。
我可以确认这是 mariadb-jdbc-驱动程序
中的错误https://mariadb.atlassian.net/plugins/servlet/mobile#issue/CONJ-167