假如你需要通过第一个SQL(①)查询出来的一个或多个值来作为你下一个SQL(②)查询的条件,那么SQL①查询出来的字段必须在你返回的结果对象里有相应的映射值,不然的话极大可能在你第二次SQL查询的时候会出现空指针
比如:
QualifiedDaysDto result1 = AMapper.selectLoginDays(searchDto);
if(result1.getLoginDays>=0){
QualifiedDaysDto result2 = AMapper.selectPercentageDays(result1.getLoginDays());//这个SQL里边我还查询了一个字段是allPeople,但是QualifiedDaysDto没有映射这个参数
QualifiedDaysDto result3 = new QualifiedDaysDto();
result3.setLoginDays(result1.getLoginDays());
result3.setPercentageDays(result2.getPercentageDays());//这个时候虽然result2没有使用allPeople,但是会出现空指针,总之一句话,SQL查询出来的字段要在实体类中一一映射,比如select allPeople from table1 where XXX,QualifiedDaysDto类中要有allPeople这个参数对应接收allPeople字段
result3.setAllDays(result1.getAllDays());
result.setResult(result3);
总之一句话,SQL查询出来的字段要在实体类中一一映射,比如select allPeople,name from table1 where XXX,QualifiedDaysDto类中要有allPeople,name这些参数对应接收allPeople、name字段,要不然下文使用时即便不用这个字段也可能出现空指针