從MyBatis代碼實現的角度來看,MyBatis的主要的核心部件有以下幾個:
SqlSession:作爲MyBatis工作的主要頂層API,表示和數據庫交互的會話,完成必要數據庫增刪改查功能;
Executor:MyBatis執行器,是MyBatis 調度的核心,負責SQL語句的生成和查詢緩存的維護;
StatementHandler:封裝了JDBC Statement操作,負責對JDBC statement 的操作,如設置參數、將Statement結果集轉換成List集合。
ParameterHandler:負責對用戶傳遞的參數轉換成JDBC Statement 所需要的參數;
ResultSetHandler:負責將JDBC返回的ResultSet結果集對象轉換成List類型的集合;
TypeHandler:負責java數據類型和jdbc數據類型之間的映射和轉換;
MappedStatement:MappedStatement維護了一條<select|update|delete|insert>節點的封裝;
SqlSource:負責根據用戶傳遞的parameterObject,動態地生成SQL語句,將信息封裝到BoundSql對象中,並返回;
BoundSql:表示動態生成的SQL語句以及相應的參數信息;
Configuration:MyBatis所有的配置信息都維持在Configuration對象之中;