我如何在两个应用程序之间共享一个h2数据库?

时间:2017-10-03 19:56:24

标签: java spring spring-boot h2

我一直试图这样做,我有一个管理员应用程序和主应用程序 所以他们之间唯一的沟通是回到书单

            <img class="image-responsive shelf-book" th:src="#{adminPath}+@{/image/book/}+${book.id}+'.png'" width="100px" />

所以这里的admin-path是管理员的URL但由于他们不共享同一个数据库我无法在我的主应用程序中查看书籍

我在考虑Spring云服务器但是没有用,有什么建议吗?

当我添加这个

jdbc.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:test:MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE
spring.datasource.username=sa
spring.datasource.password=

我收到了这个错误

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLException: Feature not supported: "autoServerMode && inMemory" [50100-196]
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-4.3.4.RELEASE.jar:4.3.4.RELEASE]
        at org.springframework.jdbc.datasource.init.DatabasePopulatorUtils.execute(DatabasePopulatorUtils.java:46) ~[spring-jdbc-4.3.4.RELEASE.jar:4.3.4.RELEASE]
        ... 63 common frames omitted
I added this below to both application and one app is running but the show this error
jdbc.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE 
spring.datasource.username=sa
spring.datasource.password=




 Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.h2.jdbc.JdbcSQLException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-196]

我已经从一个应用程序中删除了脚本的任何建议,为什么它说使用数据库我想让他们共享数据库

1 个答案:

答案 0 :(得分:1)

在两个应用的配置文件中,您应指明:

spring.datasource.url = jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE

其中test是您的数据库名称。

如果您使用Hibernate,也不要忘记:

spring.jpa.hibernate.ddl-auto = update