一、判空并进行抛出异常
java.util包下的Optional中方法可以对查询结果或对象进行判空
可以自定义异常或使用默认异常进行抛出
// 该方式查询结果为null,则抛出 java.util.NoSuchElementException: No value present,否则结果正常返回
User user = Optional.ofNullable(userMapper.selectById(1L)).get();
// 该方式若查询结果为null,则会抛出自定义异常 IYuanMessageException("账号信息不存在"),否则结果正常返回
User user = Optional.ofNullable(userNapper.selectById(0L)).orElseThrow(() -> new IYuanMessageException("账号信息不存在"));
// 该方式若查询结果为null,则返回 false,否则返回 true
boolean present = Optional.ofNullable(userMapper.selectById(0L)).isPresent();
// 该方式若查询结果为null,则返回 true,否则返回 false
boolean empty = Optional.ofNullable(userMapper.selectById(0L)).isEmpty();
二、时间计算
使用这些方法需要添加hutool依赖
使用DateUtil工具类可以很方便的进行时间偏移计算、时间差、起始时间、终止时间的计算
// 当前时间加1天,若想减1天传负数即可
DateTime dateTime = DateUtil.offsetDay(new Date(), 1);
System.out.println(cn.net.nianchu.core.util.DateUtil.formatDateTime(dateTime));
// 当前时间加1小时,若想减1小时传负数即可
DateTime dateTime1 = DateUtil.offsetHour(new Date(), 1);
System.out.println(cn.net.nianchu.core.util.DateUtil.formatDateTime(dateTime1));
// 当前时间加1分钟,若想减1分钟传负数即可
DateTime dateTime2 = DateUtil.offsetMinute(new Date(), 1);
System.out.println(cn.net.nianchu.core.util.DateUtil.formatDateTime(dateTime2));
// 计算两个时间之间相差的小时并取绝对值
long between = DateUtil.between(new Date(), DateUtil.offsetHour(new Date(), 1), DateUnit.HOUR);
System.out.println(between);
// 计算两个时间之间相差的分钟并取绝对值
long between1 = DateUtil.between(new Date(), DateUtil.offsetMinute(new Date(), 2), DateUnit.MINUTE);
System.out.println(between1);
// 计算两个时间之间相差的秒并取绝对值
long between2 = DateUtil.between(new Date(), DateUtil.offsetMinute(new Date(), 3), DateUnit.SECOND);
System.out.println(between2);
// 计算两个时间之间相差的毫秒秒并取绝对值
long between3 = DateUtil.between(new Date(), DateUtil.offsetMinute(new Date(), 3), DateUnit.MS);
System.out.println(between3);
// 当天的起始时间
DateTime dateTime3 = DateUtil.beginOfDay(new Date());
System.out.println(cn.net.nianchu.core.util.DateUtil.formatDateTime(dateTime3));
// 当天的终止时间
DateTime dateTime4 = DateUtil.endOfDay(new Date());
System.out.println(cn.net.nianchu.core.util.DateUtil.formatDateTime(dateTime4));
后续会不断更新好用的工具