1.入口
整个程序的demo在放一下:
public static void main(String[] args) {
//获取配置文件信息流
InputStream stream = Demo.class.getClassLoader().getResourceAsStream("mybatis.xml");
//使用SqlSessionFactory构建器,读取配置文件构建出一个sessionFactory
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(stream);
//通过sessionFactory开启一个Session
SqlSession sqlSession = sessionFactory.openSession(true);
//调用selectOne方法查询数据
User user = sqlSession.selectOne("org.demo.bean.UserMapper.getUser", 1);
//输出
System.out.println(user);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user2 = mapper.getUser(1L);
System.out.println(user2);
}
第一步,通过读取配置文件构建一个SqlSessionFactory上文已经说过,这里看一下如何通过SqlSessionFactory构建一个session
2.sessionFactory.openSession
SqlSessionFactory中提供了多个openSession方法,如下:
SqlSession openSession();
SqlSession openSession(boolean autoCommit);
SqlSession openSession(Connection connection);
SqlSession openSession(TransactionIsolationLevel level);
SqlSession openSession(ExecutorType execType);
SqlSession openSession(ExecutorType execType, boolean autoCommit);
SqlSession openSession(ExecutorType execType, TransactionIsolationLevel level);
SqlSession openSession(ExecutorType execType, Connection connection);
从上文中知道我们构建出来的SqlSessionFactory是一个DefaultSqlSessionFactory对象,那么我们来看一下DefaultSqlSessionFactory中是如何实现这个方法的:
/**
* openSession 调用openSessi