2017-01-20 4 views
0

Ich brauche meine Frühling Anwendungsdatenbank von MySql HSQL Datenbank zu migrieren. Ich baut hsql db Details in meiner XML-Datei und in der Lage könnte die SQL-Datei und erfolgreich eine Verbindung zu ihm laufen. Hear das Problem ist, wenn ich meinen Tomcat-Server neu starte, erstellt neue Datenbank und alte db wird gelöscht. Ich suche alle Daten, die ich in meinen Tabellen gespeichert habe. Wie kann ich db für HSQL nur einmal zum Zeitpunkt des Kriegseinsatzes oder nur einmal pro Tomcat-Neustart erstellen?erstellen hsqldb Datenbank nur einmal pro Kriegseinsatz

Hear ist meine Konfigurationsdatei:

<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> 

Antwort

0

einen HSQLDB-Server außerhalb Ihrer Web-Anwendung verwendet mit mem: Datenbank memdb benannt. Siehe http://hsqldb.org/doc/guide/listeners-chapt.html#lsc_server_props und eine Verbindung zu diesem Server mit <property name="url" value="jdbc:hsqldb:hsql://localhost/memdb"/>. Die Daten bleiben bis zum Schließen des externen Servers erhalten.

+0

habe ich auch entweder in Speicher-Konfiguration, Meine Anforderung beim externen Server neu gestartet wird, dann auch nicht erstellt meine Datenbank soll. Es muß nur einmal erstellen (das heißt das erste Mal, die wir einsetzen, den Krieg) – Navyah

+0

In diesem Fall verwenden, um eine 'file:' Datenbank auf dem Server, die Daten zu beharren. – fredt

+0

Auch nach der Verwendung der Datei gibt es das gleiche Problem. Navyah

Verwandte Themen