2016-10-01 2 views
2

Я создал H2 In-Memory Database в Spring Framework, как это:Получить Spring поместить его содержимое базы данных

EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); 
    EmbeddedDatabase db = builder 
      .setType(EmbeddedDatabaseType.H2) //.H2 or .DERBY 
      .addScript("create-table.sql") 
      .build(); 

Я хотел бы сделать еще одно приложение Java, которое соединяется этой базы данных и доступ к данным из этого.

Я могу подключиться к базе данных с этим кодом:

Connection connecton = DriverManager.getConnection("jdbc:h2:mem:testdb","sa",""); 

Но это возвращает мне пустую базу данных, без таблиц и записей.

Here is a description которые рассказывают, как решить эту проблему.

К сожалению, я не могу понять, как сделать работу с Спринг контейнера и MethodInvokingBean, потому что я не знаю, где в коде, как использовать, как он работает и т.д.

Я понимаю, что кто-то сделать короткий учебник.

Thanks

+0

ли вы проверить первое приложение? – nurgasemetey

+0

Да, я сделал и отлично работает. Я могу получить записи без проблем. – Pwi

+0

Выполняет ли второе приложение DDL-скрипты, похожие на первое приложение? Я имел в виду создание/изменение таблиц. Если это так, он уничтожит данные, сохраненные в первом приложении. Если вы используете второе приложение только для чтения данных, вы можете использовать режим только для чтения. – harshavmb

ответ

1

Вы можете запустить TCP-сервер для совместного использования базы данных. Добавление следующей конфигурации:

<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop"> 
    <constructor-arg value="-tcp,-tcpAllowOthers,-tcpPort,9092"/> 
</bean> 

После того как сервер запуска, другие приложения Java может подключиться к нему с помощью jdbc:h2:tcp://localhost:9092/mem:testdb

+0

Можете ли вы рассказать мне, где, но этот XML-код? Как я могу отменить этот компонент XML? – Pwi

+0

Для приложения Spring Boot вы можете добавить конфигурацию XML, используя '@ImportResource (value =" classpath: /package/filename.xml ")'. [Вот пример] (http://javarticles.com/2016/02/spring-importresource-annotation-example.html) –

Смежные вопросы