我编写了一个存储库类,它将javax.sql.DataSource
作为构造函数arg,并对其进行了一些基本的CRUD操作。我现在想为它编写junit测试。我想在这些测试中使用HSQL作为我的数据库,但我不确定如何按照我想要的方式设置数据库。使用Spring应用程序,我在我的应用程序上下文中添加了类似的内容进行测试:
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:mySQLForDB.sql"/>
</jdbc:embedded-database>
但是,我想要测试的不是Spring应用程序。无论如何在代码中设置数据源并从sql文件设置数据库?基本上与Spring在<jdbc:embedded-database>
标签上的功能相同的东西。
答案 0 :(得分: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有相同的方法,但没有尝试过。 看this link
我希望这会有所帮助。