【发布时间】:2012-02-13 03:28:40
【问题描述】:
我想在我的单元测试中使用内存数据库来查询数据,我的项目是 Ibatis(带注释)用于查询我想在 HSQLDB 的帮助下模拟的实际数据库。
请帮助我如何使用 HSQLDB 配置 iBatis。
还有什么方法可以更好地使用在其功能中强烈依赖数据库的代码进行单元测试。
【问题讨论】:
标签: java unit-testing hsqldb ibatis in-memory-database
我想在我的单元测试中使用内存数据库来查询数据,我的项目是 Ibatis(带注释)用于查询我想在 HSQLDB 的帮助下模拟的实际数据库。
请帮助我如何使用 HSQLDB 配置 iBatis。
还有什么方法可以更好地使用在其功能中强烈依赖数据库的代码进行单元测试。
【问题讨论】:
标签: java unit-testing hsqldb ibatis in-memory-database
您可以制作一个 iBatis sqlMappings.xml 配置文件,如下所示:
<sql-map-config>
<properties resource="configuration.properties" />
<!--The datasource for you application is configured here: -->
<datasource name = "hsql"
factory-class="com.ibatis.db.sqlmap.datasource.SimpleDataSourceFactory"
default="true">
<property name="JDBC.Driver" value=""/>
<property name="JDBC.ConnectionURL" value=""/>
<property name="JDBC.Username" value=""/>
<property name="JDBC.Password" value=""/>
</datasource>
<!--Declare the SQL Maps to be loaded for this application.
Be sure it's in your classpath. -->
<sql-map resource="maps/beanMappings.xml"/>
</sql-map-config>
加上一个这样的 congifuration.properties 文件:
JDBC.Driver=org.hsqldb.jdbcDriver
JDBC.ConnectionURL=jdbc:hsqldb:hsql://localhost/myDb
JDBC.Username=sa
JDBC.Password=
然后像这样使用它:
String resource = "maps/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlMap sqlMap = XmlSqlMapBuilder.buildSqlMap(reader);
【讨论】: