Mybatis包目錄簡介
阿新 • • 發佈:2020-08-22
包名稱 | 包內內容簡介 |
---|---|
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的程式碼結構,瞭解各個元件的位置和大概的處理關係。為後續分析原始碼打下基礎。