这些天我编写了一些没有spring支持的代码,并尝试编写这样的代码In Service ..
c = ds.getConnection();
c.setAutoCommit(false);
try {
dao.findXX(c, id);
c.commit();
} catch (Exception ex) {
c.rollback();
}
但是,当我尝试模拟DAO并测试我的服务时遇到了一些问题。 因为调用了getConnection,它将连接到一个不想查看我们的数据库。
如何使用jdbc编写service / dao以便于测试?
答案 0 :(得分:0)
我建议使用一个内存数据库(HSQL,Derby,H2)
测试开始时,您只需创建与内存中数据库的连接并模拟ds
,以便在调用getConnection时返回此连接。
使用以下连接字符串之一:
public static final String JDBC_URL_DERBY = "jdbc:derby:memory:some_db_name;drop=true";
public static final String JDBC_URL_HSQL = "jdbc:hsqldb:mem:some_db_name;shutdown=true";
public static final String JDBC_URL_H2 = "jdbc:h2:mem:some_db_name";
所有这些连接都创建名为* some_db_name *
的内存数据库实例