Ⅰ.前言

      一天四更,高产似母猪啊。接下来讲解数据库的删除操作。

Ⅱ.正题

1.单条数据删除

        Delegator delegator = ctx.getDelegator();
        GenericValue genericValue = delegator.makeValue("tableName1");
        genericValue.put("PK", "PKValue"); //主键
        delegator.removeValue(genericValue);

2.条件多条数据删除

        Delegator delegator = ctx.getDelegator();
        //查询条件也可以多重,具体参考多条件查询 EntityOperator不止EQUALS,还有NOT_EQUAL、LESS_THAN、LIKE等
        EntityCondition entityCondition = EntityCondition.makeCondition("column1", EntityOperator.EQUALS, "value1");
        delegator.removeByCondition("tableName", entityCondition);

3.混合条件数据删除

      用到了removeAll()方法,如果存在主键,则按照主键删除数据,如果没有主键,则按照传入的值条件删除。如果不传任何参数,则删除全表,我想这个应该不会有人用吧。😄具体逻辑查看源码。

        Delegator delegator = ctx.getDelegator();
        GenericValue genericValue1 = delegator.makeValue("tableName1");
        genericValue1.put("PK", "PKValue"); //主键
        genericValue1.set("column1", "value1");    //传入值
        GenericValue genericValue2 = delegator.makeValue("tableName2");
        genericValue2.put("PK", "PKValue"); //主键
        genericValue2.set("column1", "value1");    //传入值
        List list = new ArrayList() {{
            add(genericValue1);
            add(genericValue2);
        }};
        delegator.removeAll(list);

Ⅲ.结尾

      嗨呀,上一天班,划一天水,罪过罪过啊。😜