1.mybatis查询时,查询前首先就会先,new ArrayList<>,所以list一定是实例化了的,只是如果查询的total是0,那么就不会封装实体类,即 list.size() = 0 , 所以 List<> list = mapper.xxx(),我们定义的 list 是实例化了的,不会为null,不会出现 null指针异常的情况,但是 如果 (List list),list是传参过来的,那么list是有可能为 null的,是有可能出现 null指针异常的,出现 null指针异常了,大不了就是 运行出现问题了,再 改代码,判断一下是否为 null即可,但是如果 条件查询的时候,不判断条件是否为 null 和 “” ,那么 一旦条件为 null,那么就会走全表查询,但是有些表的数据大到 上亿,这种表是不能走全表查询的,一定要走条件查询,但是在 xml编写的时候,我们只能编写 where标签,所以 我们只能 说在,认为设定上,不能让 条件为 null, 但是我们不能保证 条件一定不能为null,所以我们只能在代码层面,在 这种表的查询前,首先判断 条件是否为 null “”,为 null “” , 不走 查询,但是只有几张大表是这样的情况,毕竟大多数表,条件为 null “” 是由业务背景的,比如 不输入条件 那就全表查询的 这种情况。
对于大多数表,业务表,都必须地走条件查询,只有少数基础数据维护的表可以走全表查询
走了全表查询的致命影响(不判空的致命写法导致的问题)
1.java层面,数据量太大,一个List接受 上亿数据,OOM
2.数据库层面,IO会一下子飙升
处理不好,系统和数据库都会奔溃