1.@Dict注解
@Dict(dictTable = "SYS_DEPART",dicText = "org_code",dicCode = "depart_name") private String name; // = select org_code(dicText) from SYS_DEPART(dictTable) where depart_name(dicCode) = #{name} //得到的数据前端展示时,字段后面需要加上_dictText,数据不会存到数据库
2. Java实体类为什么要序列化 implements Serializable?
private static final long serialVersionUID = 1L; a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对象的时候;
3.实体类上的注解:
@Data lombok动态生成get/set/toString/equals/hashcode等方法
相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode5个注解合集
@TableName("a") 与数据库表对应 @Accessors(chain = true) 控制是否开启链式加载结构 @EqualsAndHashCode(callSuper = false) 可放在类上,也可放在属性上
【1. 此注解会生成equals(Object other) 和 hashCode()方法。
2. 它默认使用非静态(static),非瞬态(transient(当我们将对象保存到文件中(序列化)时,所有瞬态字段都将被忽略。))的属性
3. 可通过参数exclude排除一些属性
如:@EqualsAndHashCode.Exclude
//new 两个对象 身份证数据一致 但是名字不一样 使用equals比较两个对象返回false
//可以使用lombok的该注解修饰name字段,从equlas和hashCode中忽略name字段
private String name;
private String identity;
4. 可通过参数of指定仅使用哪些属性
5. 它默认仅使用该类中定义的属性且不调用父类的方法
6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。】 @ApiModel(value="information_security对象", description="信息安全告知管理") 描述信息
4.属性上的注解
@ApiModelProperty(value = "主键") 描述属性信息 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") 需要添加 jackson 依赖 用于服务器传给前端json数据时对Date类型时间进行的格式化(pattern就表示需要转变的格式,timezone表示处在的时区(国内是东八区)),如果没有用@JsonFormat 对时间进行格式化,返回给前端的将是一个时间戳 @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 将客户端发送过来的时间参数转换成想要的类型。由于客户端传给服务端的时间参数是字符串类型,如果直接使用java.util.Date下的Date接受的话,会报400的异常(400异常表示服务器不处理该请求,多半是传入的参数问题) 注意:@JsonFormat与@DateTimeFormat只是定义时间参数在客户端和服务端之间转换格式,控制台、Debug显示的还是java.util.Date下的Date类型形式。
5.Controller层
@RestController @RequestMapping("访问路径") @Slf4j 用作日志输出,添加了该注释之后,就可以在代码中直接用log.info( ) 打印日志
6.当查询语句中字段名为关键字时,
MybatisPlus中的做法,在实体类字段上加上TableField注解:
7.获取本机ip地址:ipconfig;
8.时间与字符串转换并比较
try {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String dead=sdf.format(taskDO.getDeadline());
String finished=sdf.format(taskDO.getFinishedDate());
Date deadline = sdf.parse(dead);
Date finishedDate = sdf.parse(finished);
if(deadline.before(finishedDate)){
delayAcceptanceCount = delayAcceptanceCount.add(new BigDecimal(1));
}
} catch (Exception e) {
e.printStackTrace();
}