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 调用openSessionF

本文详细介绍了如何通过SqlSessionFactory获取SqlSession的过程,包括入口点、sessionFactory.openSession的方法实现,以及openSessionFromDataSource的参数解析和方法解析。重点关注了执行器类型、事务隔离级别和自动提交的设置,以及二级缓存在执行器中的应用。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



