gpt4 book ai didi

java - 如何通过 Spring 使用脚本初始化内存中的 HSQLDB

转载 作者:IT老高 更新时间:2023-10-28 13:05:27 25 4
gpt4 key购买 nike

我正在尝试对我的 DAO 进行单元测试(使用 Spring 和 Hibernate)。我根据 this 使用 HSQLDB教程。该教程指出内存中的 HSQLDB 数据库可以使用 SQL 脚本进行初始化,但我找不到有关如何在 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>

任何帮助将不胜感激。谢谢。

最佳答案

如果您尝试使用内存数据库和 Spring,有一个新的 jdbc namespace for Spring 3这使得使用嵌入式数据库变得非常容易。

最好的部分是它充当 DataSource,因此可以轻松放入以替换现有的 dataSource bean。

<jdbc:embedded-database id="dataSource" type="HSQL">
<jdbc:script location="classpath:schema.sql"/>
<jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

如果您对使用 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();
}
}

关于java - 如何通过 Spring 使用脚本初始化内存中的 HSQLDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com