String 对象 集合 判断为 null 和值大小为0 ““的情况

1.可以解决空指针异常问题

2.也已解决 一些 实例化 但没有值的问题

3.还有一个最主要的,对于 数据量特别大的表,是不能走全表查询的(或者说 对于大多数业务表,都是得走条件查询的,只有一些基础数据维护的表,是可以走全表查询的),只能走条件查询,但是因为 mapper.xml里面的写法是
带标签的 条件判断,所以如果你 传的参为null “” size = 0 , 那么也是会走 sql的,那就达不到我们不让sql走全表的 设计想法了,也是就是说 因为sql的写法 只能是 带标签的 where 不能把 where写死,所以在 sql层面 参数是否为null 是否有 值 都是可以执行的,所以既然我们想让 参数不为 null size>0 ,string不为”“ ,才执行sql,达到sql 一定走的是 带索引的条件查询,那么我们只能在 java层面 判断 如果条件参数为 null size=0,""那么不走sql , 如果条件不为null,size>0,不为 “” ,那么才走 sql , 不走sql 只是值查不出,不会对我的系统造成 什么致命的影响

如果 对于有的数据量大的业务表,必须走条件查询的业务表(当然 你得明白,项目上这些表 是哪些表),对于这些表的查询,在涉及上,就是只能走 条件查询的,如果走了全表查询,那么,回出现2个问题
1.在数据库层面,数据库IO因大量数据查询,飙升到 8 90
2.jvm tomcat 内存溢出 oom,List无法接住这么大的数据量

那怎么判断呢?
1、如果仅判断null的情况,不考虑值或元素存在与否,直接使用 == null即可
2、如果将值或元素不存在也看作为空,如果是简单的String,则使用lang3或spring下的StringUtils.isEmpty()都行;而如果是集合,则考虑springframework提供的CollectionUtils.isEmpty()来判断集合。(list,set,map都可判断)
3、不论是lang3提供的StringUtils还是spring提供的StringUtils、CollectionUtils,它们优点在于不用两次判断(先判断==null,再判断元素),它们提供的isEmpty()方法已经考虑了这两种情况。
4、自定义对象属性为空判断需要自定义工具类来实现。

你可能感兴趣的:(java,开发语言)