Mybatis(11)-Mybatis运行原理01

目录

运行步骤

获取sqlSessionFactory

​         解析全局配置文件

​​        解析mapper映射文件       

​        Configuration

​        获取SqlSessionFactory流程图


运行步骤

        1.获取sqlSessionFactory

        2.获取sqlSession

        3.获取接口的代理对象

        4.执行增删改查方法

        emmm,内容有点多,分成四节了。

获取sqlSessionFactory

        首先通过InputStream读取mybatis全局配置文件,通过SqlSessionFactoryBuilder创建SqlSessionFactory。

        进入build方法,通过XmlConfigBuilder解析InputStream配置,通过parse方法将配置文件解析。

        解析全局配置文件

        进入parse方法,它将你的全局配置文件中的各节点标签的配置解析,最终将所有配置信息存入Configuration对象中。

        解析mapper映射文件       

        此时我们还会有疑问:这是把mybatis全局配置文件解析了,那么mapper文件在哪解析的?我们进入this.mapperElement(root.evalNode("mappers"))这个方法中查看一下:根据引入方式找到你的mapper映射文件。

        我们进入parse()方法,看它如何解析mapper文件的?

        查看configurationElement()方法,获取了映射文件的namespace等等。我们以最后的select|insert|update|delete为例,再进入查看一下:

        进入该方法:mybatis又搞了一个statement的解析器,用来解析映射文件中的sql标签。我们再进入parseStatementNode()方法中。

        mybatis对sql标签增删改查中的每一个标签的所有属性进行了获取。方法最后它将所有属性值封装到了MappedStatement;一个mappedStatement就代表一个增删改查标签。

        这个就是MappedStatement中部分属性。我们甚至还能在这个MappedStatement的属性中找到SQl语句。

        Configuration

        所有都解析完成,所有配置文件的信息都会封装到Configuration中。包括全局配置文件和所有SQL映射文件。

        从这个Configuration中可以找到mappedStatement。甚至还能看见每个mapper对应的代理。

       最后,我们在进入SqlSessionFactoryBuilder中的build方法中,可以看出它会返回一个包含Configuration的DefaultSqlSessionFactory。

        获取SqlSessionFactory流程图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值