Jdbc 如何访问特定的H2数据库
我有2个H2数据库,位于2个不同的位置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
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://::/