传入null与传入直接new的对象的差别

使用mybaties时,直接传入null是相当于不没有添加限制条件查出所有的结果集,所以 能查出所有的结果集;

而传入一个没有赋值属性的指定对象时,在有的属性是基本类型的情况下会赋初始值,而如果你数据库中对应的字段如果没有默认初始值的话,就有可能查询不出结果

 

 如上图所示,priority在model里面声明的是int类型,假如直接new 一个对象的话,那么这个属性会被赋上0这个默认值,而我这个xml里面又没有限制0不可以传进去,最后会以where prority = 0 为限制条件,

而我的数据库中这个字段又没有赋初始值,导致最后查出的结果集为空。白白浪费大量时间排查这个问题。还是不规范的问题。

总结:直接new未添加属性的“白条”对象和null对象,可能在一些场景下是没区别的,但是某些时候可能“白条”对象并不白

posted @ 2019-12-03 16:17  不变的变  阅读(451)  评论(0编辑  收藏  举报