1

我编写了一个以 ajavax.sql.DataSource作为构造函数参数的存储库类,并对其进行了一些基本的 CRUD 操作。我现在想为它编写junit测试。我想使用 HSQL 作为我的数据库进行这些测试,但我不确定如何按照我想要的方式设置数据库。使用 Spring 应用程序,我在我的应用程序上下文中放置了类似的内容以进行测试:

<jdbc:embedded-database id="dataSource">
    <jdbc:script location="classpath:mySQLForDB.sql"/>
</jdbc:embedded-database>

但是,我想要测试的不在 Spring 应用程序中。代码中是否有设置数据源并从 sql 文件设置数据库的代码?<jdbc:embedded-database>基本上,在功能上等同于 Spring 对标签所做的事情。

4

1 回答 1

1

你会考虑尝试h2吗?

public static void main(String[] args) throws ClassNotFoundException,
        SQLException {
    Class.forName("org.h2.Driver");
    Connection conn = DriverManager.getConnection("jdbc:h2:mem:mytestdb",
            "sa", "");
    Statement st = conn.createStatement();
    st.execute("create table foo (id integer)");
    st.execute("insert into foo (id) values (1)");
    ResultSet rs = st.executeQuery("select * from foo");
    while (rs.next()) {
        int result = rs.getInt("id");
        System.out.println(result);
    }
    conn.close();
}

HSQL有同样的方法,但没有尝试过。看看这个链接

我希望这有帮助。

于 2012-09-03T15:44:31.880 回答