首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用H2数据库配置进行Spring测试

使用H2数据库配置进行Spring测试
EN

Stack Overflow用户
提问于 2011-11-18 01:37:12
回答 2查看 30.8K关注 0票数 16

我在生产环境中使用Oracle,我想使用H2进行测试。我会打字;

代码语言:javascript
复制
<jdbc:embedded-database id="dataSource">
  <jdbc:script location="classpath:schema.sql"/>
  <jdbc:script location="classpath:test-data.sql"/>
</jdbc:embedded-database>

因此,我的表和脚本是自动创建的。但是我不能设置这个数据库的URL值。(为了与H2-Oracle兼容,我应该将;MODE=Oracle添加到url部分)

有没有办法实现这个目标?

或者仅仅是一种相反的解决方案;

代码语言:javascript
复制
<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>

此时,我可以编辑URL部分,但是如何将默认测试脚本(创建和数据sql)加载到此数据源?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-18 18:58:55

这种技术解决了这个问题;

代码语言:javascript
复制
<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>

然后添加该标签和定义;

代码语言:javascript
复制
<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>
票数 22
EN

Stack Overflow用户

发布于 2011-11-18 03:11:34

也许这会有所帮助: H2支持INIT script (打开连接时执行的SQL脚本)。在XML文件中,数据库URL将如下所示:

代码语言:javascript
复制
<property name="url" value="jdbc:h2:file:h2\db;INIT=
RUNSCRIPT FROM 'classpath:schema.sql'\;
RUNSCRIPT FROM 'classpath:test-data.sql'"/>

( ;需要用反斜杠进行转义)。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8171688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档