我有一个程序获取两个值然后将它们更新到数据库中。
ps = conn.prepareStatement(SQL_UPDATE);
// prepare statement
ps.setString(1, dto.getRegion());
ps.setString(2, dto.getProdnum());
// execute update
updated = ps.executeUpdate();
我正在尝试测试这个并且我使用Mockito模拟了exectueUpdate。
public class Suppress_productsDAOTest {
Suppress_productsDTO dto = new Suppress_productsDTO();
PreparedStatement ps = mock(PreparedStatement.class);
ResultSet rs = mock(ResultSet.class);
Connection conn = mock(Connection.class);
DataAccessTwo da = mock(DataAccessTwo.class);
Suppress_productsDAO dao = new Suppress_productsDAO(da);
@Test
public void testUpdate() throws DatabaseException, SQLException {
when(da.grabConnection(anyString(), anyString())).thenReturn(conn);
when(conn.prepareStatement(anyString())).thenReturn(ps);
when(ps.executeUpdate()).thenReturn(25);
dao.update(dto);
}
当我运行测试时,我得到了SQLCODE -803,我已经多次更改了值但仍然出现错误。我该如何修复错误?任何形式的帮助将不胜感激。
SQLCODE -803:由于索引空间中的索引,因此插入或更新的值无效索引空间名称表格中的表格列中没有两行可以包含这些列中的重复值。 RID OF EXISTING ROW是X记录ID