**
Exception in thread main java.lang.NullPointerException
Exception in thread main java.lang.NullPointerException
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:84)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:64)
at com.linghu.test.Myapp.main(Myapp.java:22)
**
第一步:mysql版本和java数据库连接内容是否一致
mysql5.0版本
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
mysql8.0版本
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/spring?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
第二步:检查自己jdbc连接(driver、url、username、password)内容是否有漏写或者写错
第三步:检查自己在定义配置主文件名称和xml文件是否一致
//定义mybatis主配置文件的名称
String config="mybatis.xml";
//读取文件
InputStream in = Resources.getResourceAsStream(config);
第四步 mysql驱动依赖是否引入
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
第五步:Resources的包是否引入正确
正确的包名是
import org.apache.ibatis.io.Resources;
//getResourcesAsStream()方法
InputStream in = Resources.getResourceAsStream();
错误的包名
这个包名下的Resources虽然可以使用.class来得到getResourceAsStream()方法,但依旧读取不到数据。
import javax.annotation.Resources;
//getResourcesAsStream()方法
InputStream in = Resources.class.getResourceAsStream();