Несколько параллельных подключений к базе данных H2

Backend Java Developer
Backend Java Developer

Когда я создаю обучающие репозитории к своим статьям, то использую H2 в качестве базы данных. Но к H2 нельзя просто взять открыть несколько параллельных соединений.

Возникает вопрос, как же открыть несколько соединение к одной базе H2? Сейчас расскажу.

Мы имеем следующее подключение к базе данных:

spring:
  datasource:
    driver-class-name: org.h2.Driver
    url: jdbc:h2:mem:blog
    password: password
    username: sa
  jpa:
    hibernate:
      ddl-auto: create-drop
    database-platform: org.hibernate.dialect.H2Dialect

В вашем Spring приложении необходимо создать следующий @Bean:

@Configuration
public class BeanConfig {

    @Bean(initMethod = "start", destroyMethod = "stop")
    public Server inMemoryH2DatabaseaServer() throws SQLException {
        return Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9090");
    }

}

Это фактически создает сервер для остальных подключений H2.

Теперь вы можете подсоединиться к этой базе данных следующим образом:

jdbc:h2:tcp://localhost:9090/mem:blog

Комментарии