@Override
    protected void undoPrepare(PreparedStatement undoPST, ArrayList<Field> undoValues, List<Field> pkValueList) throws SQLException {
        //The purpose to override is because only the primary key value is needed to locate data
        int undoIndex = 0;
        for (Field pkField : pkValueList) {
            undoIndex++;
            undoPST.setObject(undoIndex, pkField.getValue(), pkField.getType());
        }
    }
@Test
    public void undoPrepareTest() throws SQLException {
        String sql = executor.buildUndoSQL().toUpperCase();
        MockConnection connection = new MockConnection(new MockDriver(), "", null);
        MockPreparedStatement undoPST = (MockPreparedStatement) connection.prepareStatement(sql);

        List<Field> fieldList = new ArrayList<>();
        fieldList.add(new Field("id", 1, "12345"));
        executor.undoPrepare(undoPST, new ArrayList<>(), fieldList);
        Assertions.assertEquals(1, undoPST.getParameters().size());
    }