Mybatis 的执行流程及核心组件如图所示
组件作用:
Configuration
用于描述Mybatis主配置文件信息,当Mybatis应用启动时候,将Mapper配置信息、类型别名、TypeHandler等注册到Configuration组建中,其他组件需要以上信息时直接从Configuration中获取,除此之外,Configuration组件还作为Executor、StatementHandler、ResultSetHandler、ParameterHandler组件的工厂类,用于创建这些组件的实例。Configuration类中提供了这些组件的工厂方法MappedStatement
用来描述Mapper中的SQL配置信息,是对Mapper XML配置文件中<select|insert|update|delete>等标签或者@Select等注解配置信息的封装SqlSession
Mybatis 为使用者提供的API,表示和数据库交互时的会话对象,用于完成数据库增删改查功能。SqlSession 是 Executor组件的外观,目的是对外提供易于理解和使用的数据库操作接口Executor
是Mybatis 的执行器,Mybatis中对数据库所有的增删改查操作都是由它完成的StatementHandler
封装了JDBC StateMent对象的操作,比如StateMent对象设置参数,调用Statement接口提供的方法与数据库交互等等ParameterHandler
当Mybatis框架使用的Statement类型是CallableStatement 和 PreparedStatement时,ParameterHandler用于为Statement对象参数占位符设置值ResultSetHandler
封装了对JDBC中的ResultSet对象操作,当执行SQL类型为Select语句时,ResultSetHandler用于将查询结果转换成JAVA对象TypeHandler
是Mybatis中的类型处理器,用于处理Java类型与JDBC类型之间的映射。它的作用主要体现在能够根据Java类型调用PreparedStatement或CallableStatement对象应对的SetXXX()方法为Statement对象设置值,而且能够根据Java类型调用ResultSet对象调用ResultSet对象对应的getXXX()获取SQL执行结果