前段时间项目中有个需求:实现某业务的运维功能,主要是对10张数据库表的增删改查,没有复杂的业务逻辑,只是满足运维人员的基本需要,方便他们快速分析定位问题。这里简单记录分享下实现方案,仅供参考。
一、项目方案
根据不同的表定义各自的Vo,然后继承公共的BaseDataVo。设计接口IDataProcessor和抽象处理类AbstractDataProcessor,这个AbstractDataProcessor定义增删改查模板方法。根据不同策略执行不同的processor,比如NodeProcessorService、NodeAutoProcessorService等。
二、代码实现
这里只实现了查询方法,其他增加、删除、修改可以依次实现!
1、定义Vo
BaseDataVo
@Getter
@Setter
public class BaseDataVo implements Serializable {
private Integer id;
private String creator;
private String last_update_by;
private Date create_time;
private Date last_update_time;
}
NodeVo
@Getter
@Setter
public class NodeVo extends BaseDataVo{
String esn;
String name;
}
2、设计表名及对应服务枚举类TableNameServiceEnum
@Getter
@AllArgsConstructor
public enum TableNameServiceEnum {
NODE("nodeVo", "nodeProcessorService"),
NODE_AUTO("nodeAutoVo", "nodeAutoProcessorService");
private String tableName;
private String serviceName;
public static Map<String, String> map = new HashMap<>();
static {
Arrays.stream(values()).forEach(v->map.put(v.g