如何选择使用哪个JDBC驱动程序?

时间:2016-10-03 00:13:47

标签: java mysql jdbc h2

我已将MySQL连接器依赖项和h2database依赖项包含在我的项目中。然后我尝试获得H2 JDBC连接,但是抛出异常而不是看起来像MySQL JDBC连接器。

DriverManager.getConnection("jdbc:h2:mem:test", "sa", "");

抛出的异常是:

com.mysql.cj.core.exceptions.WrongArgumentException: Connector/J cannot handle a database URL of type 'jdbc:h2:'.

如何访问H2数据库和MySQL数据库?

1 个答案:

答案 0 :(得分:3)

这是一个报告的错误:

Bug #82896

  

[9月21日21:33] Artem Lodygin描述:尝试连接到mySql   具有不受支持的URL的JDBC驱动程序会导致WrongArgumentException   stacktrace打印到控制台,例如:

     

com.mysql.cj.core.exceptions.WrongArgumentException:Connector / J   无法处理类型' jdbc:h2:mem:test'的数据库URL的栈跟踪   如下

     

当在系统中注册了多个JDBC驱动程序时,它就会发生   每个连接尝试链接到mysql下面的所有驱动程序。

     

预期行为因SQLException而失败。

     

如何重复:将mysql连接器jar放入classpath。不要放   com.h2数据库驱动程序进入classpath。执行以下代码:

     

DriverManager.getConnection(" jdbc:h2:mem:test",null,null);

     

建议修复:删除" e.printStackTrace();"从方法   ConnectionUrl getConnectionUrlInstance(String connString,Properties   信息)