Joh*_*n B 35 java spring hsqldb
我正在尝试对我的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)
任何帮助,将不胜感激.谢谢.
nic*_*ild 74
如果您正在尝试使用内存数据库和Spring,那么jdbcSpring 3有一个新的命名空间,可以很容易地使用嵌入式数据库.
最好的部分是它充当a DataSource,因此可以轻松地将其放入以替换现有的dataSourcebean.
<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:schema.sql"/>
<jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>
Run Code Online (Sandbox Code Playgroud)
如果您对使用Java Config执行此操作更感兴趣,请查看EmbeddedDatabaseBuilder(Spring 3.0中的新增功能).
@Configuration
public class DatabaseTestConfig {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.addScript("classpath:schema.sql")
.addScript("classpath:test-data.sql")
.build();
}
}
Run Code Online (Sandbox Code Playgroud)
Nicholas的答案非常好,但您也可以使用jdbc命名空间来初始化外部数据库:
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/DS"/>
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:/META-INF/database/init.sql"/>
</jdbc:initialize-database>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74402 次 |
| 最近记录: |