我正在尝试对我的DAO进行单元测试(使用Spring和Hibernate).我在本教程中使用的是HSQLDB .该教程指出可以使用SQL脚本初始化内存中的HSQLDB数据库,但是我无法在Spring中找到有关如何执行此操作的信息.这是相关的Spring上下文配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:mem:mydb" />
<property name="username" value="sa" />
<property name="password" value="" />
<property name="initialSize" value="5" />
<property name="maxActive" value="10" />
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="10" />
</bean>
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢.
我有spring XML,使我能够使用以下配置在服务器模式下启动H2数据库:
<beans profile="test-h2">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:target/h2/pps;AUTO_SERVER=TRUE"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
<bean id="entityManagerFactory" parent="entityManagerFactoryCommonParent">
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我想转换为基于java的配置.我在这里似乎是一个帖子:使用Spring启动并设置内存数据库,询问一些相同的问题,我查看了http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/ html/jdbc.html#jdbc-embedded-database-support for Embedded Database但它没有说明如何将H2模式设置为服务器模式.它只在"mem"模式下为我启动服务器.
我有以下代码:
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
builder.setType(EmbeddedDatabaseType.H2);
builder.setName(DATABASE_NAME);
builder.addScript(H2_SCHEMA);
builder.addScript(H2_TEST);
return builder.build();
Run Code Online (Sandbox Code Playgroud)
也许使用EmbeddedDatabaseBuilder(ResourceLoader)可能会有效.有人有一些示例代码吗?