# 架构说明 ::: details 目录 [[toc]] ::: ## 接口标准化 * 接口标准化,各对象支持标准的增删改查。查询支持过滤、排序、映射、分页等标准操作; * 标准化的代码不需要重复开发。框架支持以最少的代码完成增删改查,只需要写好实体类与controller接口类即可。实现描述型开发 ## 有什么内容 * 数据库、jdbc驱动、Mybatis * kotlin/java、Javacc * 注解、泛型、反射 * 接口层 定义与App之间的接口。定义功能与功能的访问地址,入参,返回值; * 服务层 在该层将启动事物支持, * 数据访问层 ## 数据结构中使用json * 支持json是为了解决设备、部件、资产时信息点不同问题的; * 横表存储,一般对象(字段固定)的存储采用的是横表; * 优点:数据库标准支持,查询速度快; * 缺点:动态改字段 * 竖表存储 * 优点:采用字段/值的方式存储,增删字段没任何压力; * 缺点:值类型受限,不利于做复杂的查询。对null支持不好; * Json存储 * MySQL、PostgreSQL、Oracle、SQLServer都支持Json存储了; * 可以使用SQL语句直接对Json字段中的内容进行增删改查; * 属性可以分组,做成树型结构。符合数据字典的定义格式; ## 映射 * 在具体的页面,查询数据时大多数时间不需要对象的所有属性; * 使用Projection可以指定请求的属性列表。例如只取id与名称,则“Projection”:[“id”,“name”]; * 映射不支持json;