目录
MyBatis的基础代码:
我们在使用MyBatis的时候少不了的一段代码,如下:
static InputStream is;
static SqlSession sqlSession;
static SqlSession sqlSession2;
static StudentDao studentDao;
static StudentDao studentDao2;
@BeforeClass
public static void init() throws IOException {
//第一步、把全局配置文件mybatis-config.xml读入流中
is = Resources.getResourceAsStream("mybatis01-conf.xml");
//第二步、通过流(全局配置文件)创建一个sqlsession的工厂构建器
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//第三步、通过sqlsession工厂,创建sqlsession对象
sqlSession = sqlSessionFactory.openSession();
sqlSession2 = sqlSessionFactory.openSession();
//第四步、通过sqlsession获取StudentDao的对象
studentDao = sqlSession.getMapper(StudentDao.class);
studentDao2 = sqlSession2.getMapper(StudentDao.class);
}
MyBatis的源码分析(纯文字版):
1.Resources把全局配置文件读入到内存中
2.SqlSessionFactoryBuilder: (1) 创建SqlSessionFactory(DefaultSqlSessionFactory)
(2) 把流中的配置信息---》Configuration对象中
3.SqlSessionFactory:(1) 创建SqlSession(DefaultSqlSession)
(2) 设定事务管理,是否自动提交事务
(3) 创建了一个Excutor(SimpleExcutor) , 连接数据库,执行sql语句
StatementHandler , ParameterHandler , ResultSetHandler
4.SqlSession : (1) 生成代理类MapperProxy实现指定的接口
(2) 调用了接口的方法,实际上是执行了代理类的方法