我正在AM上进行Junit测试。
问题在于,在某些情况下,一行中的属性值会发生变化,有时甚至必须删除表中的整行。
如何在每个测试用例结束时以Java编程方式恢复行,因为我不想更改数据库中的数据?
谢谢!
答案 0 :(得分:0)
对于将根据需要更新或插入记录的特定行使用merge。例如:
MERGE INTO奖金D USING(SELECT employee_id,salary, department_id FROM employees WHERE department_id = 80)S ON (D.employee_id = S.employee_id)匹配时更新设置 D.bonus = D.bonus + S.salary * .01 删除WHERE(S.salary> 8000)当插入不匹配时(D.employee_id,D.bonus) VALUES(S.employee_id,S.salary * .01) WHERE(S.salary< = 8000);
在Java中使用PreparedStatement调用它,例如:
preparedStatement = dbConnection.prepareStatement("Merge ..");
在生产中使用的另一个选项是flashback,它可以添加您可以返回的还原点。