Exception in thread “main” org.apache.ibatis.exceptions.PersistenceException:
Error opening session. Cause: java.lang.NullPointerException
Cause: java.lang.NullPointerException
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource(DefaultSqlSessionFactory.java:100)
at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSession(DefaultSqlSessionFactory.java:47)
at com.itheima.test.MybatisTest.main(MybatisTest.java:29)
Caused by: java.lang.NullPointerException
at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource(DefaultSqlSessionFactory.java:95)
… 2 more
代码如下
public class MybatisTest {
public static void main(String[] args) throws Exception {
//1.读取配置文件
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//2.创建sqlsessionfactory的构建者对象
SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();
//3.使用构建者创建工厂对象sqlsessionfactory
SqlSessionFactory factory = builder.build(in);
//4.sqlsessionFactory生产sqlsession对象
SqlSession session = factory.openSession();
//5.使用sqlsession创建dao接口的代理对象
IUerDao userDao =session.getMapper(IUerDao.class);
//6.使用代理对象执行查询所有的方法
List<User> users = userDao.findAll();
for(User user : users){
System.out.println(user);
}
//7.释放资源
session.close();
in.close();
}
}
配置文件如下
?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--配置环境-->
<environments default="mysql1">
<!--配置mysql的环境-->
<environment id="mysql1">
<!--配置事务的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源-->
<dataSource type="POOLED">
<!--配置连接数据库的4个基本信息-->
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/Mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置,-->
<mappers>
<mapper resource="com/itheima/dao/IUserDao.xml"/>
</mappers>
</configuration>
初学mybatis时遇到空指针问题
default="mysql ">mysql后多加了一个空格
id=“mysql”>
这两行中的dafault 与 id 中的值应该完全一样,去掉空格后代码正常