1、结构
Mybatis底层还是采用原生JDBC来操作数据库的,只不过通过一些处理器封装了这些过程:
SqlSessionFactory:
执行器:SqlSession Executor (update, query, flushStatements,commit,rollback, getTransaction,close, isClosed)
sql查询处理器:StatementHandler (prepare, parameterize, batch,update, query)
参数处理器:ParameterHandler (getParameterObject, setParameters)
结果处理器:ResultHandler,TypeHandler (handleResultSets, handleOutputParameters)
其中StatementHandler用通过ParameterHandler与ResultHandler分别进行参数预编译 与结果处理。而ParameterHandler与ResultHandler都使用TypeHandler进行映射。
2、工作流程
① 创建SqlSessionFactory。
② 通过①返回SqlSession。
③ 创建Mapper。
④ 执行CRUD。