zoukankan      html  css  js  c++  java
  • mybatis源码解析( 结构)

    mybatis中主要类和接口

    • Configuration:将mybatis配置文件中的信息保存到该类中
    • SqlSessionFactory:解析Configuration类中的配置信息,获取SqlSession
    • SqlSession:负责和数据库交互,完成增删改查
    • Executor:mybatis的调度核心,负责SQL的生成
    • StatementHandler:封装了JDBC的statement操作
    • ParameterHandler:负责完成JavaType到jdbcType的转换
    • ResultSetHandler:负责完成结果集到Java Bean的转换
    • MappedStatement:代表一个select|update|insert|delete元素
    • SqlSource:根据传入的ParamterObject生成SQL
    • BoundSql:包含SQL和参数信息

    在网上找了个流程图帮助理解

    1、在和spring和事务集成后,第五步的获取sqlSession会复杂点,上一节已经说过

    2、第六步中,userMapper是个单例了,一级缓存会失效,和事务集成后,又会生效

    3、第七步之前回去transactionalCacheMannager时,这里集成了redis的缓存,只要实现Cache接口,二级缓存这里看过源码可以发现,cache是一层一层嵌套的,比如LruCache,SerializedCache

    4、第八步中routingStatementHandler也就是上面的StatementHandler,但只是相当于一个工厂类,生产PreparedStatementHandler、SimpleStatementHandler、CallableStatementHandler

    5、PreparedStatementHandler里包括ParameterHandler处理参数java转换为jdbc,ResultHandler处理jdbc转换成java

     

    6、第九步获取到了PreparedStatementHandler,在这里获取jdbc的connection

    7、TypeHandle的运用,转换java类型和jdbc类型

     
  • 相关阅读:
    海泉湾
    ns2的wirelessphy中添加定时器
    ns2能量模型添加充电模型
    用gawk和gnuplot来分析ns2的trace文件
    [转载]ns2中的能量模型
    配置本地SVN[转载]
    EMQ插件通过HTTP连接认证服务器实现认证
    在K8S上跑一个helloworld
    EMQ插件组合实现物联网边缘平台的设备通信管理
    在CentOS7上搭建Kubernetes
  • 原文地址:https://www.cnblogs.com/pjfmeng/p/14266243.html
Copyright © 2011-2022 走看看