Java H2完全忽略jdbcUrl中的IFEXISTS=false
我有以下代码来启动H2守护进程并使用Hikari连接到它:Java H2完全忽略jdbcUrl中的IFEXISTS=false,java,h2,hikaricp,Java,H2,Hikaricp,我有以下代码来启动H2守护进程并使用Hikari连接到它: // Start H2 daemon server = Server.createTcpServer("-tcpDaemon").start(); // Connect Hikari to H2 server HikariConfig hkConfig = new HikariConfig(); hkConfig.setDriverClassName("org.h2.Driver"); hkConfig.setJdbc
// Start H2 daemon
server = Server.createTcpServer("-tcpDaemon").start();
// Connect Hikari to H2 server
HikariConfig hkConfig = new HikariConfig();
hkConfig.setDriverClassName("org.h2.Driver");
hkConfig.setJdbcUrl("jdbc:h2:" + server.getURL() + "/./ghost;MODE=MySQL;IFEXISTS=false");
...
但是,即使在JDBC URL中将IFEXISTS
设置为false
,在池初始化期间仍然会出现以下异常:
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database "C:/Users/Cole/IdeaProjects/ghost2/ghost" not found, and IFEXISTS=true, so we cant auto-create it
我尝试用“正常”方式连接
DriverManager
,但没有成功。引发了相同的异常。是否有一种不同的工作方式来配置我不知道的H2功能,或者我做错了什么?这似乎是一条写得不好的错误消息。有关详细信息,请参阅
奇怪的是,这个问题并没有在中出现,看起来您不必指定,这是默认行为-也许您可以通过取消池并通过普通jdbc连接来隔离这个问题。也许是Hikari的问题?是的,我通过
DriverManager
尝试了普通JDBC。同样的错误。不知道这里发生了什么对不起,你在问题中这么说了。抓住救命稻草,你试过大写的false
?所有的文档都在上面。如果没有,我就退出了。我也试过了,没用。发现这是一条错误消息。我发布的答案详细说明了问题。发现得好,做得好。