zoukankan      html  css  js  c++  java
  • Mybatis八( mybatis工作原理分析)

    MyBatis的主要成员

    • Configuration        MyBatis所有的配置信息都保存在Configuration对象之中,配置文件中的大部分配置都会存储到该类中
    • SqlSession            作为MyBatis工作的主要顶层API,表示和数据库交互时的会话,完成必要数据库增删改查功能
    • Executor               MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护
    • StatementHandler 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数等
    • ParameterHandler  负责对用户传递的参数转换成JDBC Statement 所对应的数据类型
    • ResultSetHandler   负责将JDBC返回的ResultSet结果集对象转换成List类型的集合
    • TypeHandler          负责java数据类型和jdbc数据类型(也可以说是数据表列类型)之间的映射和转换
    • MappedStatement  MappedStatement维护一条<select|update|delete|insert>节点的封装
    • SqlSource              负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回
    • BoundSql              表示动态生成的SQL语句以及相应的参数信息

    以上主要成员在一次数据库操作中基本都会涉及,在SQL操作中重点需要关注的是SQL参数什么时候被设置和结果集怎么转换为JavaBean对象的,这两个过程正好对应StatementHandler和ResultSetHandler类中的处理逻辑。

    1.sqlSessionFactory 初始化

    解析每一个信息保存在Configuration中,返回包含Configuration信息的DefaultSqlSession

     

    2.openSession

     

     3.getMapper

        

     4.sql执行

      

      

     5.查询流程总结

      

     6.今日总结

      

      

  • 相关阅读:
    uniapp 小程序分享功能
    uniapp 输入有值后按钮变色
    css 跑马灯
    uniapp 复选框问题
    【Python】where cut query melt函数用法
    【Python】Pivot_table透视表用法及CategoricalDtype自定义排序
    【Python】Merge函数的用法
    【Python】extract及contains方法(正则提取筛选数据)
    Promise
    CSS垂直居中的方法
  • 原文地址:https://www.cnblogs.com/flgb/p/10295336.html
Copyright © 2011-2022 走看看