h2 - poner - tags h1 y cursiva ejemplos
Pruebas de primavera con configuraciĆ³n H2 db (2)
Utilizo Oracle en el entorno de producción y me gustaría usar H2 para las pruebas. Puedo teclear;
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:schema.sql"/>
<jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>
Así que mis tablas y scripts se crean automáticamente. Pero no puedo establecer el valor de URL de esta db. (Para la compatibilidad con H2-Oracle debería agregar; MODE = Oracle a url part)
¿Hay alguna manera de lograr este objetivo?
O simplemente una solución opuesta;
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:file:h2/db"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
en este momento, puedo editar la parte de la URL, pero ¿cómo puedo cargar los scripts de prueba predeterminados (crear y datos cuadrados) en esta fuente de datos?
Esta técnica resolvió el problema;
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
y luego agregando esta etiqueta y definición;
<jdbc:initialize-database data-source="dataSource" ignore-failures="DROPS">
<jdbc:script location="classpath:testdb/schema.sql" />
<jdbc:script location="classpath:testdb/data.sql" />
</jdbc:initialize-database>
Tal vez esto ayude: H2 es compatible con un script INIT (un script SQL que se ejecuta al abrir la conexión). La URL de la base de datos se vería así en el archivo XML:
<property name="url" value="jdbc:h2:file:h2/db;INIT=
RUNSCRIPT FROM ''classpath:schema.sql''/;
RUNSCRIPT FROM ''classpath:test-data.sql''"/>
(el ;
necesita ser escapado con una barra invertida).