在测试数据访问层的DAO代码时,如果连接真实的数据库会导致产生一些测试数据。应用HSQLDB在内存中建立一个同结构的数据库用来测试是个好主意。下面就针对使用Ibatis的DAO代码进行测试。
1. 下载HSQLDB 的jar文件。
2. 建立一个数据库描述文件
java 代码
- driver=org.hsqldb.jdbcDriver
- url=jdbc:hsqldb:mem:testfixture
- username=sa
- password=
其中testfixture是可以更改的。
3. 建立一个PersistenceFixture.java
java 代码
- package com.yaoyuan.max.persistence;
-
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.util.ResourceBundle;
-
- import com.ibatis.common.jdbc.ScriptRunner;
- import com.ibatis.common.resources.Resources;
- import com.ibatis.dao.client.DaoManager;
- import com.yaoyuan.max.persistence.ibatis.DaoConfig;
-
- public class PersistenceFixture {
- private static final DaoManager daoManager;
-
- static {
- try {
- ResourceBundle resource = ResourceBundle.getBundle("com/yaoyuan/max/persistence/database");
-
- DaoConfig daoConfig = new DaoConfig(
- "com/yaoyuan/max/persistence/database.properties");
- daoManager = daoConfig.getDaomanager();
- Class.forName(resource.getString("driver"));
- Connection conn = DriverManager.getConnection(
- resource.getString("url"),
- resource.getString("username"),
- resource.getString("password"));
-
- try {
- ScriptRunner runner = new ScriptRunner(conn,true,true);
- runner.setErrorLogWriter(new PrintWriter(System.out));
- runner.setLogWriter(new PrintWriter(System.out));
- runner.runScript(Resources
- .getResourceAsReader("ddl/hsql/schema.sql"));
-
- } finally {
- conn.close();
- }
-
- } catch (Exception e) {
- throw new RuntimeException("Description. Cause: " + e, e);
- }
- }
-
- public static DaoManager getDaoManager() {
- return daoManager;
- }
-
- }
相应的DaoConfig.java代码
java 代码
-
-
-
- package com.yaoyuan.max.persistence.ibatis;
-
- import java.io.Reader;
- import java.util.Properties;
-
- import com.ibatis.common.resources.Resources;
- import com.ibatis.dao.client.DaoManager;
- import com.ibatis.dao.client.DaoManagerBuilder;
-
-
-
-
-
- public class DaoConfig {
-
- private final DaoManager daoManager;
-
- public DaoConfig(String propertyFilePath) {
- try {
- String resource = "com/yaoyuan/max/persistence/ibatis/dao.xml";
- Reader reader = Resources.getResourceAsReader(resource);
- Properties props = Resources.getResourceAsProperties(propertyFilePath);
- daoManager = DaoManagerBuilder.buildDaoManager(reader,props);
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(
- "Could not initialize DaoConfig. Cause: " + e);
- }
- }
-
-
-
-
-
- public DaoManager getDaomanager() {
- return daoManager;
- }
- }
4. 然后就可以取得Dao进行测试了
java 代码
- (CategoryDao)PersistenceFixture.getDaoManager().getDao(CategoryDao.class);
分享到:
相关推荐
简单的创建两个例子,如何创建hsqldb,如何使用hsqldb查询数据等。
hsqldb的最新1.9.0版本,支持windows操作系统
HSQLDB-JUnit5-测试HSQLDB JUnit 5软件测试
hsqldb 2 3 2 zip HyperSQL是用Java编写的一款SQL关系数据库引擎 它的核心完全是多线程的 支持双向锁和MVCC 多版本并发控制 几乎完整支持ANSI 92 SQL 支持常见数据类型 最新版本增加了对BLOB和CLOB数据的支持 最高...
hsqldb确实是个好东西,对于系统演示,开发等都很方便。
HSQLDB中文文档,能够提高数据的处理速度。
HSQLDB 1.8.0
Hsqldb 是一个优秀的轻量级开源的纯Java SQL 数据库。 大家可以从Hsqldb 官方网站(http://hsqldb.org)获取到Hsqldb 的发布包、源代码和文档。
hsqldb jdbc driver适合于hsqldb
测试数据库 用于实现 HSQLdb 以便为 JUnit 测试提供内存数据的小应用程序
hsqldb for jdk1.5因为hsqldb的2.0版本以上都是jdk1.6进行编译的,我提供的这个2.25版本的是jdk1.5编译的。
数据库连接 hsqldb1.7.1.jar
hsqldb jar
HSQLDB中文手册
hsqldb可能需要的额外jar包 Additional Jar files needed for hsqldb.
HSQLDB数据库,经典啊
HyperSQL User Guide HyperSQL Database Engine (HSQLDB) 2.2 hsqldb-2.2.9用户手册
hsqldb-2.4.0
hsqldb是我们进行Java开发的最常用的数据库之一,希望大家能够喜欢
NULL 博文链接:https://songwensheng.iteye.com/blog/855119