在当前时间的基础上加一年加一天,加一个月
//获取当前日期
Date date = new Date();
//创建Calendar实例
Calendar cal = Calendar.getInstance();
cal.setTime(date); //设置当前时间
cal.add(Calendar.YEAR, 1); //在当前时间基础上加一年
//将时间格式化成yyyy-MM-dd HH:mm:ss的格式
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(cal.getTime()));
//同理增加一个月和一天的方法:
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DAY, 1);
数据库存的userId是long类型返回前端失真解决
**@JsonSerialize(using = ToStringSerializer.class)
private Long userId;**
数据库的v_switch_id要求vSwitchId格式但是mybatis匹配出的是vswitchId解决
@JsonProperty(value = "vSwitchId")
private String vSwitchId;
1.集合比较并排序
list.sort(Comparator.comparing(BatteryGroupCount::getStatus));
2.jdk1.8流的使用(从集合列表中选择对象的某些信息,整合成新的集合.比如在SQL里,你可以从表中选择一列,Stream API也通过map和flatMap提供了类似的方法
List<Dish> menu =
List<String> collect = menu.stream().map(Dish::getName).collect(Collectors.toList())
将集合取出某一列属性并将其转换成以逗号分割的字符串
List<Model> fromData = getModelList();
String ids= fromData.stream().map(m -> m.id()).collect(Collectors.joining(","));
3.类型转化(将String转化为集合)
List<String> list = Arrays.asList(DDD_MAPPING.split(","));
#RPC(之get请求)
用流将集合进行分组求和(BigDecimal )
BigDecimal cpuUseRds = rdsModelList.stream().map(y -> y.getCpuUseRate().multiply(new BigDecimal(y.getCpu()))).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
BigDecimal cpuUseRateRds = cpuUseRds.divide(new BigDecimal(cpuRds), 2, BigDecimal.ROUND_CEILING);
Integer memoryRds = rdsModelList.stream().map(BaseUseRateEntity::getMemory).reduce(Integer::sum).get();
BigDecimal memoryUseRds = rdsModelList.stream().map(y -> y.getMemoryUseRate().multiply(new BigDecimal(y.getMemory()))).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
BigDecimal memoryUseRateRds = memoryUseRds.divide(new BigDecimal(memoryRds), 2, BigDecimal.ROUND_CEILING);
int类型求和
int sum = nums.stream().reduce(0, Integer::sum);
此外reduce还有还有一个重载的方法,它没有初始值,使用Optional接收结果:
List<Integer> nums = Arrays.asList(1,2,3,4,5,6,7);
Optional<Integer> optional = nums.stream().reduce(Integer::sum);
System.out.println(optional.get());//28
最大值和最小值
Optional<Integer> optional = nums.stream().reduce(Integer::max);
System.out.println(optional.get());
Optional<Integer> optional2 = nums.stream().reduce(Integer::min);
System.out.println(optional2.get());
4.drop、delete 与 truncate 区别?
用法不同
drop(丢弃数据): drop table 表名 ,直接将表都删除掉,在删除表的时候使用。
truncate (清空数据) : truncate table 表名 ,只删除表中的数据,再插入数据的时候自增长 id 又从 1 开始,在清空表中数据的时候使用。
delete(删除数据) : delete from 表名 where 列名=值,删除某一列的数据,如果不加 where 子句和truncate table 表名作用类似。
truncate 和不带 where 子句的 delete、以及 drop 都会删除表内的数据,但是 truncate 和 delete 只删除数据不删除表的结构(定义),执行 drop 语句,此表的结构也会删除,也就是执行 drop 之后对应的表不复存在。