工作知识记录(一)

1、前台传String日期格式后台用date接收

前端的日期选择器,在传递时,一般是String类型,而后端用类对象去接收,通常需要的Date类型,这样就会报错

为了解决这个问题,后端可以在接收实体的这个字段上添加注解:@DateTimeFormat(pattern = "yyyy-MM-dd")

@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date firstCooperationDate;

这样就可以正常接收了

另外 @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
是后台date传到前台展示时可以帮你转成String

2、query和vo层

Vo层:VO表现对象
用于前端界面展示,ViewObject表现层对象;主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值;对于Android而言即是activity或view中的数据元素。

用于表示一个与前端进行交互的java 对象。这里的 VO 只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

Query层:
QUERY 的概念使得 Domain Bean 的代码更加干净。定义了一个抽象类 Query,该类包含了一些比较通用的查询属性,如是否分页、当前页页码、每页记录数、开始时间、结束时间以及查询目标类的 Class 等。

用于接收前端传入的java对象,用来接收一些查询信息,在项目中我们通常涉及到多表的联查,页面上很多查询信息,可能不会在同一个实体类中存在,所以我们可以定义一个query类,用来接收前端的查询信息

一般使用就是使用query类去查数据库,查出来的对象用Vo去映射

3、时间,当前日期+date天

 /**
     * 当前日期+day天
     * @param date
     * @param day
     * @return
     */
 public static Date getDay(Date date,Integer day) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, +day);//+day 今天的时间加day天
        date = calendar.getTime();
        return date;
    }

时间比较,判断借阅时间是否超过7天:

    //拿到借阅开始的时间+7天
    Date startTime = getDay(u.getCheckDate(),7);
    //当前时间
    Date time=new Date();
    //把借阅申请时间和当前时间做比较>7
    //当前时间-借阅开始的时间+7天
    Long day =  time.getTime()-startTime.getTime();
    //再判断day,day>=0 则超过7天,否则不超过

判断是否大于20天:

    Date time = new Date();
    //获取当前时间和合同签订时间的时间差
    Long now = time.getTime() - start.getTime();
    //转换为天数
    int day = (int) (now / 24 / 3600000);
    // 判断是否大于20天
    if (day >= 20) {
    }

4、使用CollectionUtils工具类判断List

CollectionUtils.isNotEmpty() 包含null,size=0等多种情况
而== null 只能用来判断是否为null

注:list.isEmply()与CollectionUtils.isEmpty(list)的区别
如果list为null时,使用list.isEmply就会报NullPointerException(空指针异常),为什么呢?因为使用list.isEmply的前提是保证list不为空。一个对象,如果值为null那么调用它内部的方法时一定会报空指针异常。所以使用list.isEmpyt()方法之前要先对list对象是否为null进行判断

你可能感兴趣的:(工作知识记录(一))