2012-07-30 30 views
0

這幾天我不寫彈簧支撐的一些代碼編寫可測試服務/刀與交易,並嘗試寫這樣在服務代碼..如何使用JDBC來

c = ds.getConnection(); 
c.setAutoCommit(false); 
try { 
    dao.findXX(c, id); 
    c.commit(); 
} catch (Exception ex) { 
    c.rollback(); 
} 

但是,我遇到了一些問題,當我嘗試模擬DAO,並測試我的服務。 因爲getConnection被調用,它會連接到一個不想看到我們的數據庫。

如何用jdbc編寫service/dao來輕鬆測試?

回答

0

我會建議使用內存數據庫(HSQL,德比,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 *