包名稱 | 包內內容簡介 |
---|---|
annotation | 註解目錄。包括全部的註解。如@SELECT ,@UPDATE 等 |
binding | Mapper類的實例反射生成工具目錄 |
builder | 主要是註解,mapper和SqlSuorce的構造器及轉換器 |
cache | Mybatis內部緩存接口。實現了一些特定的緩存策略。FifoCache ,LruCache ,BlockingCache ,LoggingCache 等 |
cursor | 默認的遊標處理類 |
dataSource | 數據源工廠類及實現。實現類包括JndiDataSourceFactory 、PooledDataSourceFactory 、UnpooledDataSourceFactory 。 數據源實現類: UnpooledDataSource 、PooledDataSource |
exceptions | Mybatis自定義的三個異常類。ExceptionFactory 、PersistenceException 、TooManyResultsException 、IbatisException 。都繼承自RuntimeException |
executor | 執行器相關包。包括Key生成器、加載器(包括Cglib、Javassist的代理,結果加載器)、參數處理器接口、結果處理器、結果集(resultSet)處理器、Statement處理器(實現類:BaseStatementHandler 、CallableStatementHandler 、PreparedStatementHandler 、RoutingStatementHandler 、SimpleStatementHandler )、執行器(SimpleExecutor 、ReuseExecutor 、CachingExecutor 、BatchExecutor 、BaseExecutor ) |
io | 主要是定義的幾個VFS(VFS 、DefaultVFS 、ClassLoaderWrapper ) |
javassist | javassist的字節碼處理包 |
jdbc | 與Sql相關的操做。如Sql運行器,腳本運行器和Sql封裝類等 |
lang | 指定是用java7仍是java8的API的註解.UsesJava7 、UsesJava8 |
logging | 各個類型的日誌適配器,都實現了Log 接口。StdOutImpl 、Slf4jImpl 、NoLoggingImpl 、Log4j2Impl 、Log4jImpl 、Jdk14LoggingImpl 、BaseJdbcLogger 、JakartaCommonsLoggingImpl |
mapping | 主要是接口參數,sql和返回結果的映射類,主要類包括:MappedStatement ,ParameterMap ,ParameterMapping ,ResultMap ,ResultMapping ,BoundSql ,SqlSource 等類 |
ognl | ognl包在Mybatis中的內部代碼引用 |
parsing | 變量解析.如解析${} ,#{} 等 |
plugin | 主要包含插件的定義接口。如Interceptor ,Plugin ,InterceptorChain 等 |
reflection | 主要是一些反射操做的工具方法和對象工廠類,以及一些經常使用的包裝類,如BaseWrapper ,BeanWrapper ,CollectionWrapper ,MapWrapper ,ObjectWrapper ,, , |
scripting | 執行驅動和動態Sql解析的老巢 |
session | 主要是SqlSession和SqlSessionFactory |
transaction | 主要是mybatis簡單封裝的jdbc事務操做類 |
type | 各個類型數據的處理器。用於動態的設置參數和轉換數據。如IntegerTypeHandler 用來處理Integer類型的值的set和get操做。除了八大基本類型。還有經常使用的集合及Map類型,還增長了各類時間類型的處理器 |
經過整理每一個包的主要功能。通覽整個mybatis的代碼結構,瞭解各個組件的位置和大概的處理關係。爲後續分析源碼打下基礎。java