MyBatis数据库操作空指针异常

编程入门 行业动态 更新时间:2024-10-14 16:22:32

MyBatis数据库操作空<a href=https://www.elefans.com/category/jswz/34/1768268.html style=指针异常"/>

MyBatis数据库操作空指针异常

有时候,你认为出问题的地方并不是你想的地方。

明明数据库都设置了id自增,xml也做了相关的配置

useGeneratedKeys=“true” keyProperty=“id”

@Resource
private static AccountMapper accountMapper;

但数据insert依然报空指针异常,控制台很明显可以看出id为null导致的异常,于是静下心来想想,结果发现插入的这个mapper被我放在一个工具类里了,方法设为了静态,所以变量mapper也被设置为static,编译时没有任何问题,但是一跑起来就一直是空指针异常,其实跟MyBatis没啥关系,是因为spring没法注入静态变量,类被加载字节码的时候变量已经初始化了,也就是给该变量分配内存了,导致spring忽略静态变量。所以上面的写法自然就错了。

Spring 依赖注入是依赖set方法,静态变量不属于对象,只属于类。解决方法就是加上非静态的set方法,如下:

private AccountMapper accountMapper;

@Resource
public void setAccountMapper(AccountMapper accountMapper) {
this.accountMapper = accountMapper;
}

或者在spring的配置文件中配置(说白了也是set方法,都一样)

更多推荐

MyBatis数据库操作空指针异常

本文发布于:2024-02-12 19:15:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1689048.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:指针   异常   操作   数据库   MyBatis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!