问题描述:
公司的产品线孵化项目时,经常性的面临实体类加字段的问题,为此,项目中采用了如下方案来解决。
1,备用字段,产品中,项目继承一个扩展的备用字段。用于项目灵活添加字段。
该方案能解决大部份的场景,优点是简单粗暴有效,可参与逻辑处理。缺点时占表空间(一般可忽略),字段命名不可识别,上面截图采用了明星的名字命名。比column_1,column_2,column_a什么要稍微要好点。
如下图:
2.动态参数,后置更新方案,原理就是前端任一传额外参数,然后将参数转为下划线命名,优点是命名规范,按需建字段。缺点是字段不能参与逻辑处理,有sql注入缺陷,需额外处理。代码中需额外处理逻辑。不咋方便,适用于一些简单的增删改查。项目实际使用得少。
public void handleContext(UserUpdateRequest context) {
User user= context.getForm();
insert(user);
ParamWrapper.
build(context, form.getId())
.update(userMapper::updateByWrapper);
}
public class ParamWrapper<T>