查询数据值有null时异常处理
这里是我碰到的一个数据接口异常,出现在我项目中电话的模糊查询,在项目中新增用户时一个用户可以新增三个电话,一个办公电话、一个移动电话、一个家庭电话,这边一个用户是三个电话的新增,但由于我考虑到个人可能没有这么多的电话提供,所以我就允许用户新增时三个电话必须新增一个,所以就会导致有的电话数据为空的情况,我们这边的页面的查询条件有两个电话的查询,办公电话和移动电话,但是在我写好模糊查询的时候,进行测试我就发现如果说我的所有用户中只要有一个用户的某个数据为空那么我查询那一种数据的时候就会出现数据异常的情况,比如说我的一个用户的移动电话为空但是我还有其他用户的移动电话数据那么我进行移动电话的模糊查询时就会直接数据异常,它不会管你其他的数据,就会出现这种情况。这里就是说如何简单的处理一下这种情况。
这上边就是写的一个办公电话和一个移动电话的模糊查询,当然还有其他的查询条件,但是这里出现问题的就是这两个数据的查询,因为我的其他数据是不允许为空的,所以不会出现我上边说的情况。
首先我们看数据库中的数据,左边一列是移动电话,右边一列是办公电话,我们可以看到这两列数据都是有空值存在的(null就是空),当我们这边的数据有空值存在的时候我们在页面进行模糊查询的时候就会出现数据异常,只要一列数据中有一个空值都会出现数据异常,虽然我写的是模糊查询都是不行的。下面的话可以看一下结果图
上边我们是进行的移动电话的查询,我们可以看到移动电话的那一列第二个数据是为空的,在我们还没有进行处理直接查询移动电话为5445212这条数据的时候尽管是有这条数据的但是它会直接出现下面这个数据接口请求异常的一个报错。
其实在还没有报数据接口异常的时候,它就会在控制器这边报出一个错误,我们可以简单的看懂一点,下面的疑难解答提示“在调用方法前,通过检查确定对象是否为null”,可以想到这个错是由于数据有null了。
其实是很简单的一个解决方法,就是当我们在数据库进行查询出来数据后我们进行一个循环,循环查询出来的所有数据,然后循环中判断,我们这边就是判断移动电话和办公电话,如果为null的话就给它赋值为一个空的字符串。这两者是有区别的, null会报错那我就给它一个空的字符串,这样就不会报错了,下面是处理好null值之后的查询结果,就会按照你的查询条件显示对应的数据,这样就解决咯。