1. MySQL数据库double
类型的字段数据比较大时候,Java对象用String接收被变成科学计数法
类似下面这种:
"AcqValFyend": 31015777.12
"AcqValFyend": "3.101577712E7"
不要用String接收double,用BigDecimal类型接收
2.stream的Collectors.groupingBy不能以null
为key进行分组的解决方案
Map<String, List<SoStoData>> collect = list.stream().collect(Collectors.groupingBy(s ->
{
Optional<String> optional = Optional.ofNullable(s.getDnNo());
//判断dn是否为空(这里直接抛出了业务异常,也可以做其他操作)
if (!optional.isPresent()) {
throw new BusinessException("上传数据DN为空!");
}
return s.getDnNo();
}
));
3.用分页插件pagehelper报错可能情况,把xml里的注释删掉
4.用分页插件pagehelper分页出现数据重复的问题,同一条数据在不同页都存在,可能是排序字段不唯一或者可能为空,可以加上唯一性字段作为辅助排序。
5.mybatis传入单字符报错
如:Cause: java.lang.NumberFormatException: For input string: "D"
原因分析:'D'被当成了数字。
解决办法:这种在mybatis的XxxMapper.xml中遇到这个问题,若是用到了 String的类型,一般就单引号里面包双引号,如<if test='type == "D"'>
6.Integer超出大小,==比较结果不同,用equals()比较
7. 注解@Value("${xx.xxx}") ,不能直接赋值给静态变量
@PostConstruct
private void init() {
initRandom=random;
}
8. 当switch遇到null
,会报空指针异常
。所以,在使用switch前加上非null判断,单独处理或赋值,方便走default。
9.@RequestBody只能修饰一个入参