博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis-01-基本流程
阅读量:4949 次
发布时间:2019-06-11

本文共 890 字,大约阅读时间需要 2 分钟。

 

mybatis执行流程
 
  • 1. 加载配置文件并初始化(SqlSession)
    • 配置文件来源于两个地方,一个是配置文件(主配置文件conf.xml,mapper文件*.xml),
    • 一个是java代码中的注释,将sql的配置信息加载成为一个mappedstatement对象,存储在内存之中(包括传入参数的映射配置,结果映射配置,执行的sql语句)。
  • 2. 接收调用请求
    • 调用mybatis提供的api,传入的参数为sql的id(有namespase和具体sql的id组成)和sql语句的参数对象,mybatis将调用请求交给请求处理层。
  • 3. 处理请求
    • 根据sql的id找到对应的mappedstatament对象。
    • 根据传入参数解析mappedstatement对象,得到最终要执行的sql。
    • 获取数据库连接,执行sql,得到执行结果
    • Mappedstatement对象中的结果映射对执行结果进行转换处理,并得到最终的处理结果。
    • 释放连接资源
  • 4. 返回处理结果

 


 

 

层级

  • sqlSession
    • sqlSessionFactory
      • configuration
        • mappedStatements
          • 包含所有的mappedStatement 对象

 

 

idea断点调试

 

 

 MapperProxy 代理Mapper中有一个sqlSession  sqlSession中有sqlSessionFactory    sqlSessionFactory中有一个configuration

 

configuration 中有一个 mappedStatements 中包含了所有mappedstatament集合,所有mapper中定义的方法保存在这里,可以看到

 

  key:com.huarui.dao.postMapper.deleteByPrimarykey

  value:

    sqlSource:

      sql: 对应的sql语句

  

 

mybatis功能架构及执行流程 参考:

 

转载于:https://www.cnblogs.com/youxiu326/p/mybatis-01.html

你可能感兴趣的文章
Canvas的drawImage方法使用
查看>>
自定义适用于手机和平板电脑的 Dynamics 365(四):窗体脚本
查看>>
阴影效果参考网址
查看>>
华为交换机端口镜像
查看>>
简易爬虫(爬取本地数据)
查看>>
一位菜鸟的java 最基础笔记
查看>>
python 进程间通信
查看>>
字符串和编码
查看>>
servlet(一)
查看>>
异常实验
查看>>
python \r与\b的应用、光标的含义
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Java环境变量PATH和CLASSPATH
查看>>
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME) 就是补存在这个列名
查看>>
assert 的作用是什么?
查看>>
收藏夹(持续更新)
查看>>
iOS中的#import和class区别
查看>>
节约内存,请使用标签页管理工具:onetab、better onetab
查看>>
jQuery中的事件与动画
查看>>
页面加载骨架
查看>>