zoukankan      html  css  js  c++  java
  • mybatis纵览

    Mybatis

      MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

      MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

       

    Mybatis结构图

    Mybatis简易核心过程

    Mybatis几个重要的类

    1、org.apache.ibatis.session.defaults.DefaultSqlSession

      SqlSession的实现,Mybatis功能代码核心入口,阅读源代码的起始点。

      初学者可以从org.apache.ibatis.session.defaults.DefaultSqlSession#selectList(java.lang.String, java.lang.Object, org.apache.ibatis.session.RowBounds)方法着手学习(断点调试)源代码。

      也是从这个方法可知,Mybatis主要把操作分为MappedStatementExecutor

    2、org.apache.ibatis.binding.MapperProxyFactory

      Mybatis主要使用动态代理模式隐藏接口到实际执行sql的映射,这个类就是动态代理初始化的为止。

      使用编程式初始化的时候,是从这个地方调用的org.apache.ibatis.binding.MapperRegistry#addMapper

    3、org.apache.ibatis.scripting.xmltags.DynamicSqlSource

      Mybatis最好用的就是动态sql,这个类就包含了动态sql的真实面目

    4、org.apache.ibatis.executor.SimpleExecutor

      Mybatis的执行器是sql执行功能的封装入口。前期初始化的MappedStatement和查询参数将在此主导过程进行。

      其中org.apache.ibatis.mapping.BoundSql对象就是前期预处理的重要结果,其内容包含了处理后带?的sql以及动态参数填充具体内容映射。

      动态sql的核心处理过程则是在org.apache.ibatis.scripting.xmltags.DynamicSqlSource#getBoundSql

  • 相关阅读:
    5.4.3 果园里的树
    5.3.2 字母重排
    5.3.1 6174问题
    Codeforces Round #253 (Div. 2), problem: (B)【字符串匹配】
    POJ1054 枚举【STL__binary_search()_的应用】
    432B
    0x3f3f3f3f...编程中无穷大常量的设置技巧
    2014年百度之星程序设计大赛 资格赛第一题 (longlong)
    Tarjan
    Dijkstra、Dij + heap、Floyd、SPFA、 SPFA + SLF Template
  • 原文地址:https://www.cnblogs.com/chendeming/p/13387220.html
Copyright © 2011-2022 走看看