使用Mybatis报错:java.lang.NullPointerException排查方案

举报
JavaEdge 发表于 2021/06/04 01:51:29 2021/06/04
【摘要】 nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang.NullPointerException ### The error may involve com.hzgroup.switchpr...
nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.lang.NullPointerException
### The error may involve com.hzgroup.switchproject.dao.inter.mysql.DistributionBookingDao.updateByPrimaryKeySelective-Inline
### The error occurred while setting parameters
### SQL: update xxx
### Cause: java.lang.NullPointerException

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1 开启打印SQL语句的配置

因为是通过MyBatis 连接数据库,所以需要查看SQL的执行语句

Spring+Mybatis在控制台输出SQL的最简单方法:

application.yml文件中添加:

  • logging.level.Mapper所在包=debug

2 检查SQL里的字段

SQL里的字体要与实体类的成员变量相对应,大小写也要注意。
注意区分属性ResutlMap和ResultType的使用,别混了。

3 检查数据库的字符编码

数据库、表、字段的字符编码都应该统一,最好设置成utf8-general_ci

4 检查Mapper是否注入成功

@Autowire报错导致的NullPointerException,虽然报错,项目运行没有问题。可是只有紧挨着@Autowire的一个起作用,下面的都没有注入成功。这时需要在每一个注入的Mapper中都加上@Autowire。

5 List All elements are null导致NullPointerException

当List对象显示 All elements are null时,虽然输入为[null],但是list.size()=1。不管是list==null,list.isEmpty(),list.size()都无法判断list是否为空。
可以在执行上面语句时,加上list.remove(null)

文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。

原文链接:javaedge.blog.csdn.net/article/details/109992588

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。