概述
一
修改sql的select查询条件时,需要同时查看是否有group by分组条件。如果有group分组条件,需要在group by后同时修改
二
利用mybatis修改sql时,需要注意and/or等条件是否缺失
三
java代码对一个pojo的属性做更改前,查询其是否为空,或者说是否从数据库中已经读出。
比如读取Student类的sex,如果数据库没读,那么判定性别后处理的逻辑就进不去。
四
还是性能问题,利用for循环做sql查询或者更新,性能过低了,单机系统尽力避免
五
Ibatis中编写if test属性时,入参类型中没有改属性值的字段定义
六
数值的等于判断问题
// Integer java对于-128到127之间的数,会进行缓存,这个范围的Integer对象是同一个! == 是ok,
// 但是超出这个范围就不可以用 == 判断
Integer a1=1;
Integer a2=1;
System.out.println(a1==a2);
Integer b1=1001;
Integer b2=1001;
System.out.println(b1==b2);
//BigDecimal初始化double的问题 用new BigDecimal(1.1) 可能会导致初始化的精度不准确
BigDecimal bigDecimala=new BigDecimal(1.1);
BigDecimal bigDecimalb=new BigDecimal(1.2);
System.out.println(bigDecimala.add(bigDecimalb));
//BigDecimal初始化double的问题 用BigDecimal.valueOf 准确
BigDecimal bigDecimal1=BigDecimal.valueOf(1.1);
BigDecimal bigDecimal2=BigDecimal.valueOf(1.2);
System.out.println(bigDecimal1.add(bigDecimal2));
//运行结果:
true
false
2.3000000000000000444089209850062616169452667236328125
2.3
七
Map map=new HashMap();
map.put(null,"1");
不报错,map可以塞key为null
八
mybatis的条件判断,外围用单引比较好
<when test='expired == null or expired == "" or expired == "0"'>
九
oracle用in查询,list的长度大于999后报错
十
前端传递的字符两端有空格,不容易发现,未过滤
有不可见的空格换行符需去除
十一
excle上传解析时
数字解析为文本字符串带逗号
文本字符串可能有不可见的空格换行符
十二
重复发起请求,幂等问题,导致后台记录数据重复
最后
以上就是斯文蓝天为你收集整理的常见bug的全部内容,希望文章能够帮你解决常见bug所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复