Java 是否可以在每个JUnit测试用例之后回滚数据库而不使用Spring框架?
我正在尝试测试更新数据库中多个表的服务,并希望在每个测试用例之后将数据库回滚到以前的状态。我找到的所有解决方案都使用@Transactional和@RollbackfromSpringFramework,但由于我的应用程序不是SpringWeb应用程序,我想使用javax@Transactional,这对我来说并不适用Java 是否可以在每个JUnit测试用例之后回滚数据库而不使用Spring框架?,java,junit,transactions,rollback,Java,Junit,Transactions,Rollback,我正在尝试测试更新数据库中多个表的服务,并希望在每个测试用例之后将数据库回滚到以前的状态。我找到的所有解决方案都使用@Transactional和@RollbackfromSpringFramework,但由于我的应用程序不是SpringWeb应用程序,我想使用javax@Transactional,这对我来说并不适用 这在javax或Spring之外的任何其他情况下都是可能的吗?回滚事务对于测试(集成测试)来说不是一个好主意,因为在提交之前可能不会验证约束 你应该: 只有用于集成测试的数据库(
这在javax或Spring之外的任何其他情况下都是可能的吗?回滚事务对于测试(集成测试)来说不是一个好主意,因为在提交之前可能不会验证约束 你应该:
更好的方法是使用内存数据库: 氢
并非总是,也不是数据库中的所有内容都可以回滚到初始状态(例如序列)。您可以在
@Before
中以编程方式创建一个事务,然后在@Before
@D.Lawrence中以@方式回滚它。您有一个示例如何做到这一点吗?您是否使用简单的jdbc来实现此目的?@D.Lawrence是的