Ⅰ.前言
上一节讲到了数据库的新增,接下来就来讲数据库的更新操作。😄
Ⅱ.正题
1.根据主键更新
Delegator delegator = ctx.getDelegator();
GenericValue genericValue = delegator.makeValue("tableName"); //创建一个实体对象
genericValue.set("PK", "PKValue"); //传入主键值 联合主键就传入多个
genericValue.set("column1", "value1"); //传入值
genericValue.setString("column2", "value2");
genericValue.set("column3", "value3", false); //如果value3是null就不set
genericValue.store(); //更新入库
2.多条件更新
Delegator delegator = ctx.getDelegator();
Map fieldsMap = new HashMap() {{
put("column1", "value1"); //需要更新的字段
put("column2", "value2");
put("column3", "value3");
}};
//查询条件也可以多重,具体参考多条件查询 EntityOperator不止EQUALS,还有NOT_EQUAL、LESS_THAN、LIKE等
EntityCondition entityCondition = EntityCondition.makeCondition("column4", EntityOperator.EQUALS, "value4");
delegator.storeByCondition("tableName", fieldsMap, entityCondition); //更新入库
3.批量更新
这个批量更新不止一个表的批量更新,还能多表的批量更新,然后事务提交,为了方便回滚吧。
Delegator delegator = ctx.getDelegator();
GenericValue genericValue1 = delegator.makeValue("tableName1");
genericValue1.put("PK", "PKValue"); //主键
genericValue1.put("column1", "value1");
GenericValue genericValue2 = delegator.makeValue("tableName2");
genericValue2.put("PK", "PKValue"); //主键
genericValue2.put("column1", "value1");
List list = new ArrayList() {{
add(genericValue1);
add(genericValue2);
}};
delegator.storeAll(list); //不存在则插入否则更新入库
Ⅲ.尾声
更新应该就这些操作了吧,其它操作还是看看源码吧。😋
Comments | NOTHING