1、MyBatis工作原理
MyBatis操作數據庫流程分為8個步驟,具體介紹如下:
(1)MyBatis讀取核心配置文件mybatis-config.xml
mybatis-config.xml核心配置文件主要配置了MyBatis的運行環境等信息。
(2)加載映射文件Mapper.xml
Mapper.xml文件即SQL映射文件,該文件配置操作數據庫的SQL語句,需要在mybatis-config.xml中加載才能執行。mybatis-config.xml可以加載多個映射文件,每個映射文件對應數據庫中的一張表。
(3)構造會話工廠
通過MyBatis的環境等配置信息構建會話工廠SqlSessionFactory,用于創建SqlSession。
(4)創建會話對象
由會話工廠SqlSessionFactory創建SqlSession對象,該對象中包含了執行SQL語句的所有方法。
(5)創建執行器
會話對象本身不能直接操作數據庫,MyBatis底層定義了一個Executor接口用于操作數據庫,執行器會根據SqlSession傳遞的參數動態的生成需要執行的SQL語句,同時負責查詢緩存地維護。
(6)封裝SQL信息
? SqlSession內部通過執行器Executor操作數據庫,執行器將待處理的SQL信息封裝到MappedStatement對象中,MappedStatement對象中存儲了要映射的SQL語句的id、參數等。Mapper.xml文件中一個SQL語句對應一個MappedStatement對象,SQL語句的id即是MappedStatement的id。Executor執行器會在執行SQL語句之前,通過MappedStatement對象將輸入的參數映射到SQL語句中。
(7)操作數據庫
根據動態生成的SQL操作數據庫。
(8)輸出結果映射
執行SQL語句之后,通過MappedStatement對象將輸出結果映射至Java對象中
?
2、初識框架
2.1框架概述
? 軟件框架是一種通用的、可復用的軟件環境,它提供特定的功能,助力軟件應用、產品和解決方案的開發工作。軟件框架包含支撐程序、編譯器、代碼、庫、工具集和API,它把這些部件匯集在一起,以支持項目或系統的開發。(“框架”Framework一詞最早出現在建筑領域,是指建造房屋前期所構建的建筑骨架。)
2.2框架優勢(相比于JSP+Servlet技術進行軟件開發,使用框架有以下優勢)
(1)提升開發效率
(2)提高代碼規范性和可維護性
(3)提高軟件性能
2.3當前主流框架
Spring框架、Spring MVC框架、MyBatis框架、Spring Boot框架、Spring Cloud框架
(1,Spring框架
Spring框架是一個開源框架,是為了解決企業應用程序開發復雜這一難題而創建的,其主要優勢之一就是分層架構。同時,Spring之所以與Struts、Hibernate等單層框架不同,是因為Spring致力于提供一個以統一的、高效的方式構造整個應用,并且可以將單層框架組合在一起建立一個連貫的體系。Spring提供了更完美的開發環境,可以為POJO(Plain Ordinary Java Object,普通Java對象)提供企業級的服務。
(2,Spring MVC框架
Spring MVC是Spring提供的一個基于MVC設計模式的Web開發框架,是Spring家族中應用于Web應用的一個模塊,可以將它理解為Servlet。在MVC模式中,Spring MVC作為控制器(Controller)用于實現模型與視圖的數據交互,是結構非常清晰的JSP Model2實現,即典型的MVC框架。
Spring MVC框架采用松耦合、可插拔的組合結構,具有出色的可配置性,與其他的MVC框架相比,Spring MVC具有更強的擴展性和靈活性。此外,Spring MVC本身就是Spring家族的一部分,可以與Spring框架無縫集成,因此,Spring MVC在互聯網開發中應用得越來越廣泛。
(3,MyBatis框架
MyBatis原本是Apache的一個開源項目iBatis,2010年這個項目由Apache Software Foundation遷移到了Google Code,并改名為MyBatis,2013年11月MyBatis又被遷移到GitHub。MyBatis是一個優秀的持久層框架,它可以在實體類和SQL語句之間建立映射關系,是一種半自動化的ORM(Object Relational Mapping,對象關系映射)實現。MyBatis封裝性要低于Hibernate,但它性能優越、簡單易學,在互聯網應用的開發中被廣泛使用。
(4,Spring Boot框架
Spring Boot框架是Pivotal團隊基于Spring開發的全新框架,其設計初衷是為了簡化Spring的配置,使用戶能夠構建獨立運行的程序,提高開發效率。Spring Boot框架本身并不提供Spring框架的核心特性及擴展功能,它只是用于快速、敏捷地開發新一代基于Spring框架的應用,同時它還集成了大量的第三方類庫(如Jackson、JDBC、Redis等),使用戶只需少量配置就能完成相應功能。
(5,Spring Cloud框架
Spring Cloud是一系列
?