1 数据类型
列动态显示、扩展,modelandview不合适,使用json数据类型。
2 动态url
代码中name和表名关联,能一个方法查询多个表。@PathVariable是用来获得请求url中的动态参数的。
@RequestMapping(value="/find/{name}",produces = "text/html;charset=UTF-8")
@ResponseBody
public String findComponentCpuHostAssets1(@PathVariable String name,@RequestParam("data") String json){
}
3 动态查询表列名
需要一张专门维护列的表,INFORMATION_SCHEMA(schema就是数据库对象的集合) 访问mysql数据库的元数据,可以访问表的列名,关键sql:
select DISTINCT(column_name) from information_schema.columns where table_name='cpu';
4 统计表数据
简单工厂:生产同一等级任何产品(上帝类),对增加新产品无能为力,没遵循遵循开闭原则,不属于23设计模式;
工厂方法:工厂方法是针对每一种产品提供一个工厂类。减轻了工厂类的负担。支持拓展增加产品
抽象工厂:应对产品族概念。生产不同系列的全部产品,对增加新产品无能为力。不支持拓展增加产品;支持增加产品族
方便扩展表,用简单,类的结构如下图。