MyBatis的運行分為兩大部分:
第一部分是讀取配置文件緩存到Configuration對象纪蜒, 用以創(chuàng)建SqlSessionFactory
第二部分是SqlSession的執(zhí)行過程
MyBatis層次結構
圖解說明:
SqlSession 作為MyBatis工作的主要頂層API较屿,表示和數(shù)據庫交互的會話苹享,完成必要數(shù)據庫增刪改查功能
Executor MyBatis執(zhí)行器迫摔,是MyBatis 調度的核心,負責SQL語句的生成和查詢緩存的維護
StatementHandler 封裝了JDBC Statement操作迈螟,負責對JDBCstatement的操作玉工,如設置參數(shù)椰于、將Statement結果集轉換成List集合。
ParameterHandler 負責對用戶傳遞的參數(shù)轉換成JDBC Statement 所需要的參數(shù)
ResultSetHandler 負責將JDBC返回的ResultSet結果集對象轉換成List類型的集合贮乳;
TypeHandler 負責java數(shù)據類型和jdbc數(shù)據類型之間的映射和轉換
MappedStatement MappedStatement維護了一條<select|update|delete|insert>節(jié)點的封
SqlSource 負責根據用戶傳遞的parameterObject忧换,動態(tài)地生成SQL語句,將信息封裝到BoundSql對象中向拆,并返回
BoundSql 表示動態(tài)生成的SQL語句以及相應的參數(shù)信息
Configuration MyBatis所有的配置信息都維持在Configuration對象之中