Mybayis介绍
-
Mybatis是由Apache的一个开源项目iBatis 2010年这个项目由 Apache software foundation迁移到 GoogleCode 并改名为Mybatis实质上Mybatis对ibatis进行了一些改进。
-
Mybatis作为优秀的持久层框架,它对jdbc操作数据库进行了封装,使开发者需要只关注Sql本身 不需要消耗多余经历去处理注册驱动关闭资源等等…
-
执行原理
(源码解读)
1.同Resources加载已配置好的mybatis-config.xml配置文件,Resouces是ibatis.io包下的一个类,用于读写文件,通过getResourcesAstream把指定的xml文件加载进来 将指定的xml解析为流的操作,可以见的Resources.getResourceAsStream返回值为Inputstream 输入流。InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
2 .将获取到的IO输入流放入SqlSessionFactoryBuilder().build(resourceAsStream)获取到我们的SqlSessionFactory对象SqlSessionFactoryBuilder是SqlSessionFacory的构建者,通过阅读build内的源码发现 有一个XMLConfigBuilder对象 这个对象是用于解析xml的构建者。
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
通过XMLConfigBuilder内的方法parse()来解析我们的mybatis-config.xml配置文件
其主要解析配置文件的方法为parseConfiguration方法进行读取配置信息
parse()解析完毕后返回一个configuration其内部存放了mybatis核心配置文件解析完成后的结果。调用完成后又调用了build方法返回了一个DefaultSqlSessionFactory对象
最终返回了一个处理后的SqlSessionFactory对象var5。既然有了sqlSessionFactory对象,那就可以愉快的产生出SqlSession对象了。。最终经过各种磨难各种校验后得出了Sqlsession对象。SqlSession sqlSession = build.openSession();
使用SqlSesion对象的getMapper()方法获取接口信息
UserDao mapper = sqlSession.getMapper(UserDao.class);
来源:CSDN
作者:Thorw
链接:https://blog.csdn.net/ThreeLiPingChao/article/details/104732175