如何自己建設電影網站制作網站需要什么
1、為什么會看原理書籍
????????Mybatis是我們Java后端開發(fā)中的主流ORM框架,基本都會在工作中用到。所以,是既熟悉,又陌生。熟悉是因為一直都在使用,而陌生則是對于其內部原理還不夠深入。剛好近期的工作中,又遇到了一個需求,需要利用mybatis框架做一些輸出任務,因此正好看一看,進一步了解一下其根本,好做出相應的對策。
2、學習之后的一些感受
首先,mybatis有以下核心組件:
Configuration:Mybatis所有的配置信息都維持在Configuration 對象之中
SqlSession:作為Mybatis 工作的主要頂層API,表示和數據庫交互的會話,完成數據庫增刪查改功能
Executor:Mybatis 執(zhí)行器,是Mybatis 調度的核心,負責SQL
StatementHandler:封裝了JDBC Statement 操作,負責對JDBC statement 的操作,如設置參數,將 Statement 結果集轉換為List 集合
ParameterHandler:負責對用戶傳遞的參數轉換為JDBC Statement 所需要的參數
ResultSetHandler:負責將JDBC返回的ResultSet結果集對象轉換為List 類型的集合
MappedStatement:MappedStatement主要維護各個加載的sql語句的配置信息、映射關系等等
MapperProxy、MapperProxyFactory:Mapper 代理,使用原生的Proxy 執(zhí)行mapper 里的方法
其次,執(zhí)行過程有:
1、從mybatis-config.xml讀取全局配置文件,用于配置數據庫連接、屬性、類型別名、類型處理器、插件、環(huán)境配置、映射器(mapper.xml)等信息,這個過程中有一個比較重要的部分就是映射文件其實是配在這里的;這個核心配置文件最終會被封裝成一個Configuration對象
2、加載SQL映射文件,該文件中配置了操作數據庫的SQL語句,映射文件是在mybatis-config.xml中加載;可以加載多個映射文件。常見的配置的方式有兩種,一種是package掃描包,一種是mapper找到配置文件的位置。
3、用建造者設計模式使用SqlSessionFactoryBuilder對象構建的,SqlSessionFactory的最佳作用域是應用作用域。
4、由會話工廠創(chuàng)建SqlSession對象,對象中包含了執(zhí)行SQL語句的所有方法,每個線程都應該有它自己的SqlSession實例。SqlSession的實例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域,并把執(zhí)行器放進SqlSession中。
5、通過Executor執(zhí)行器,負責SQL語句的生成和查詢緩存的維護,它將根據SqlSession傳遞的參數動態(tài)地生成需要執(zhí)行的SQL語句,同時負責查詢緩存的維護。
6、通過MappedStatement對解析的SQL的語句封裝,一個MappedStatement代表了一個sql語句標簽。
7、輸入參數類型可以是基本數據類型,也可以是Map、List、POJO類型復雜數據類型,這個過程類似于JDBC的預編譯處理參數的過程,有兩個屬性 parameterType和parameterMap。再封裝結果集,可以是Map、List、POJO類型復雜數據類型。封裝結果集的過程就和JDBC封裝結果集是一樣的。也有兩個常用的屬性resultType和resultMap。