读书人

Spring的jdbc:initialize-database标签

发布时间: 2013-03-01 18:33:02 作者: rapoo

Spring的jdbc:initialize-database标签使用

在使用spring的jdbc:initialize-database标签进行单元测试时,发现这个标签与dataSource一同使用时,SQL脚本没有被正确执行,测试过程如下:

applicationContext-jdbc.xml

?java测试代码为:

package com.shagri.showcase.data;import org.junit.Assert;import org.junit.Test;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;@ContextConfiguration("classpath:jdbc/applicationContext-jdbc.xml")public class DataInitTest extends AbstractTransactionalJUnit4SpringContextTests {@Testpublic void testData(){Assert.assertEquals(6,countRowsInTable("ss_user"));}}

? ? ?这里的import-data.sql和schema.sql是从springside4里面取出来的两个文件,在import-data.sql对ss_user表有6个insert语句。所以这里单元测试的期望是表中数据条数为6,但是遗憾的是,这里的测试失败,实际得到的数据条数为0。

? ? ?但是如果将xml文件中的dataSource和jdbc:initialize-database注释掉,而启用jdbc:embedded-database标记时,单元测试结果正确 。

? ? ?想与各位探讨一下这两种使用方式的不同之处,以及为什么会出现这样的问题。

读书人网 >其他数据库

热点推荐