一、JPA实体注解
- @Entity - 这是一个标记注释,表明这个类是一个实体,这个注释必须放在类名称上。
- @Table - 当实体类与其映射的数据库表名不同时需要使用@Table,该标注常用的属性是 name,用于指明数据库的表名。
- @Id - 位于持有持久标识属性地特定字段上。该字段被视为数据库中地主键。
- @Column - 用来标识实体类中属性与数据表中字段的对应关系
- @GeneratedValue - 为实体类生成一个唯一标识的主键,提供了主键的生成策略。
其中包含:
- strategy:主键生成策略
- generator:主键生成器
二、Jackson
简介
-
Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。
-
Jackson 社区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson 是最流行的 json 解析器之一 。
-
Spring MVC 的默认 json 解析器便是 Jackson。 Jackson 优点很多。
-
Jackson 所依赖的 jar 包较少 ,简单易用。
-
与其他 Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比较快;Jackson 运行时占用内存比较低,性能比较好;
-
Jackson 有灵活的 API,可以很容易进行扩展和定制。
常用注解
- @JsonFormat - 从数据库获取数据到前段进行展示时,使用该注解
- @DataTimeFormat - 前台传递数据到后台时,使用该注解
- @JsonInclude - 指定实体类在序列化时的策略
常用的属性值:
- JsonJsonInclude.Include.ALWAYS :这个是默认策略,任何情况下都序列化该字段,和不写这个注解是一样的效果。
- JsonJsonInclude.Include.NON_NULL:这个最常用,即如果加该注解的字段为null,那么就不序列化这个字段了。
- JsonJsonInclude.Include.NON_ABSENT:java中有些复杂的数据结构,比如AtomicReference或是Optional,如果某个属性是这个类型,虽然此属性不为null,但是其包装的内容是null的,此注解的作用是,只有此属性不为null,且其包装的内容是有值的才会被序列化
- JsonJsonInclude.Include.NON_EMPTY:这个属性包含NON_NULL,NON_ABSENT之后还包含如果字段为空也不序列化。这个也比较常用
- JsonJsonInclude.Include.NON_DEFAULT:这个也好理解,如果字段是默认值的话就不序列化。
三、Mybatis
- @Param - 基础类型有参数必须要添加@Param注解(只有一个可以忽略不加但是建议加上),其中 value 属性值与配置文件参数要一致。