Jdbc 如何访问特定的H2数据库

Jdbc 如何访问特定的H2数据库,jdbc,h2,squirrel-sql,Jdbc,H2,Squirrel Sql,我有2个H2数据库,位于2个不同的位置 D:\test\activitiDB\activiti.h2.db and D:\myapps\jbpmDB\jbpmdb1.h2.db 在Hsql中,我可以在Hsql属性文件中为数据库指定别名,只需在JDBC URL中使用别名,如下所示: jdbc:hsqldb:hsql://localhost:9001/myDB1 其中别名myDB1实际上指向HSQL数据库中提到的某个文件位置 可以在H2数据库系统中使用类似的东西吗 因此,我可以通过以下方式从SQ

我有2个H2数据库,位于2个不同的位置

D:\test\activitiDB\activiti.h2.db
and
D:\myapps\jbpmDB\jbpmdb1.h2.db
在Hsql中,我可以在Hsql属性文件中为数据库指定别名,只需在JDBC URL中使用别名,如下所示:

jdbc:hsqldb:hsql://localhost:9001/myDB1
其中别名myDB1实际上指向HSQL数据库中提到的某个文件位置

可以在H2数据库系统中使用类似的东西吗

因此,我可以通过以下方式从SQL客户端或JAVA代码访问H2数据库:

jdbc:h2:tcp://localhost:9092/jbpmdb1
OR
jdbc:h2:tcp://localhost:9092/activiti
现在使用上述URL在我的SQL客户端中显示此StackTrace:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: Database "D:/apps/dumps/H2_DB/bin/activiti" not found [90013-172]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
    at org.h2.message.DbException.get(DbException.java:169)
    at org.h2.message.DbException.get(DbException.java:146)
    at org.h2.engine.Engine.openSession(Engine.java:54)
    at org.h2.engine.Engine.openSession(Engine.java:160)
    at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139)
    at org.h2.engine.Engine.createSession(Engine.java:122)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:138)
    at java.lang.Thread.run(Unknown Source)

谢谢。

在H2中,没有HSQLDB中的别名机制。在H2中可以执行的操作是按服务器设置的。如果需要多个基本目录,可以启动多个服务器(在不同的端口上),如下所示:

java org.h2.tools.Server -tcp -tcpPort 9091 -baseDir D:\test\activitiDB
java org.h2.tools.Server -tcp -tcpPort 9092 -baseDir D:\myapps\jbpmDB

要从客户端访问数据库,请使用类似以下内容的url:jdbc:h2:tcp://::/