mybatis源码小记

  1. SqlSessionFactory sqlSession工厂类,与mybatis直接交互都是通过sqlSession

  2. SqlSession 提供了增删改查 commit rollback等接口

  3. Executor 核心处理层 sqlSession就是调用了Executor的接口

  4. MappedStatement mapper文件里的每个select | delete | update | insert 都被映射成一个MappedStatement对象,sqlSession拿到MappedStatement传给 Executor执行

  5. StatementHandler 封装了JDBC的Statement操作, Executor生成一个StatementHandler进行JDBC操作

  6. ParameterHandler 负责将用户传递的参数转成jdbc statement所需的参数

  7. ResultSetHandler 负责将jbdc返回的ResultSet转成List,所有select语句都处理成了list, selectOne支持selectList.get(0)。list是ArrayList类型的

Written on March 15, 2020