报错:Error opening session. Cause: java.lang.NullPointerException
原因:
Test.java
SqlSession session=factory.openSession();报错
MapperConfig.xml
<environments default="development"> 问题出自
<environment id="development"></>
<environemnt id=""></>
</environments>
在mybatis配置时,可能由于我们开发时的数据库环境和最终上线时的数据库环境不同,因此可以在配置文件中配置多个数据环境; 即在 < enviroments >标签下可以配置多个< enviroment>标签,每一个<enviroment >标签对应一个数据库环境
而不同的数据库环境通过< enviroment > 标签的 id 属性用以区分 那么具体开发时如果知道使用的是哪一个环境呢?
在< envirments> 标签里有一个default属性,该属性对应的是下面的不同的<enviroment > 的id属性
default的值为哪一个id,则代表此时使用的是哪一个environment数据库环境
由于一开始我照着教程写的代码,直接填的default=”development”,我以为该值是一个mybatis框架下的一个默认值,< environments,所以写错了,在openSession时会导致获取为空
解决办法:
< environment default=”“> 该值为下面配置的< environment id=”“>中需要使用的环境的id即可
借鉴:MJCLown的博客