Мне нужно перенести мою базу данных приложений Spring из MySql в базу данных HSQL. Я сконфигурировал данные hsql db в своем XML-файле и смог запустить файл sql и успешно подключиться к нему. Услышьте проблему, когда я перезапускаю мой tomcat-сервер, создается новая база данных и удаляется старый db. Я ищу все данные, которые хранятся в моих таблицах. Как я могу создать db для HSQL только один раз во время развертывания войны или только один раз для перезапуска tomcat.Создайте базу данных hsqldb только один раз для развертывания войны
Услышь мой конфигурационный файл:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd">
<jdbc:embedded-database id="dbcpDataSource" type="HSQL">
<jdbc:script location="classpath:schema.sql"/>
</jdbc:embedded-database>
<tx:annotation-driven/>
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:mem:test"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
<property name="maxActive" value="100000"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="16000"/>
<property name="minIdle" value="0"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dbcpDataSource"/>
<property name="packagesToScan" value="com.design.model"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
</props>
</property>
<property name="exposeTransactionAwareSessionFactory"><value>false</value></property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
</beans>
Я использовал даже в конфигурации памяти. Мое требование - перезагрузка внешнего сервера, а также моя база данных не должна создаваться. Его нужно создать только один раз (в первый раз, когда мы разворачиваем войну) – Navyah
В этом случае используйте базу данных «file:» на сервере, чтобы сохранить данные. – fredt
Даже после использования файла, он дает ту же проблему. <свойство name = "url" value = "jdbc: hsqldb: c: \ javasrc \ hsqldb-dev: test; ifexists = true; create = false" /> – Navyah