# 架构说明
::: 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；







