数据库存在的列表返回null报java.lang.NullPointerException问题求解
可能的问题原因及排查步骤:
- 检查Service注入状态
确认Controller层的vaksinService成员变量是否添加了@Autowired/@Resource注入注解,若未添加注解vaksinService本身为null,调用方法时会直接抛出空指针,最终返回的listVaksin也为null。 - 检查Service层
getVaksinList()实现逻辑- 确认Service内部的DAO/Mapper是否正确注入,是否存在DAO实例为null的情况
- 检查方法内部的返回逻辑:是否存在SQL执行异常被捕获后手动返回null的逻辑;是否查询后没有做空值兜底就直接返回。正常情况下MyBatis等ORM框架查询无结果会返回空列表而非null,只有代码主动返回null才会出现列表为null的情况
- 检查数据库连接与映射配置
确认当前项目连接的数据库和你确认有数据的数据库是否为同一个实例,VaksinModel的字段映射、DAO层的SQL语句是否存在表名、字段名写错的问题,导致查询报错返回null。 - 临时修复方案
可以先在Controller层添加空值兜底逻辑,避免空值传递到前端触发渲染异常:List<VaksinModel> listVaksin = Optional.ofNullable(vaksinService.getVaksinList()).orElse(Collections.emptyList());
内容的提问来源于stack exchange,提问作者miruku
相关产品推荐
相关产品推荐

