mybatis描述核心配置文件 basemapper實現(xiàn)原理?
basemapper實現(xiàn)原理?basmybatis流式查詢優(yōu)缺點?優(yōu)勢1.簡單易學Mybatis本身很小很簡單。沒有任何第三方依賴,最簡單的安裝只需要兩個jar文件和幾個SQL映射文件,易學易用。通過
basemapper實現(xiàn)原理?
bas
mybatis流式查詢優(yōu)缺點?
優(yōu)勢
1.簡單易學
Mybatis本身很小很簡單。沒有任何第三方依賴,最簡單的安裝只需要兩個jar文件和幾個SQL映射文件,易學易用。通過文檔和源代碼,我們可以充分掌握其設計思想和實現(xiàn)。
2.靈活性
Mybatis不會對應用程序或數(shù)據(jù)庫的現(xiàn)有設計產生任何影響。SQL用XML編寫,便于統(tǒng)一管理和優(yōu)化。通過SQL,我們基本上可以實現(xiàn)所有不用數(shù)據(jù)訪問框架就能實現(xiàn)的功能,也許更多。
3.從程序代碼中分離SQL
通過提供DAL層,將業(yè)務邏輯和數(shù)據(jù)訪問邏輯分離,使得系統(tǒng)設計更加清晰,更易于維護,更易于單元測試。SQL和代碼的分離提高了可維護性。
4.提供映射標簽,支持對象和數(shù)據(jù)庫之間ORM字段關系的映射。
5.提供對象關系映射標簽來支持對象關系的建立和維護。
6.提供XML標簽,支持動態(tài)SQL的編寫。
劣勢
1.寫SQL語句的時候工作量很大,尤其是有很多字段和關聯(lián)表的時候。
2.SQL語句依賴于數(shù)據(jù)庫,導致數(shù)據(jù)庫的可移植性差,所以數(shù)據(jù)庫無法被替換。
3.框架還是比較簡單,功能還是缺失的。雖然簡化了數(shù)據(jù)綁定代碼,但是整個底層數(shù)據(jù)庫查詢實際上都是自己寫的,工作量比較大,不容易適應快速的數(shù)據(jù)庫修改。
4.二級緩存機制不好。
mybatis工作原理及流程?
1)讀取mybatis配置文件:mybatis-config.xml是MyBatis的全局配置文件,配置了MyBatis的運行環(huán)境等信息,比如數(shù)據(jù)庫連接信息。
2)加載映射文件。映射文件是SQL映射文件,其中配置了操作數(shù)據(jù)庫的SQL語句,需要加載到MyBatis配置文件mybatis-config.xml中mybatis-config.xml文件可以加載多個映射文件,每個文件對應數(shù)據(jù)庫中的一個表。
3)構建會話工廠:通過MyBatis 等配置信息構建會話工廠SqlSessionFactory。;環(huán)境。
4)創(chuàng)建會話對象:通過會話工廠創(chuàng)建SqlSession對象,該對象包含執(zhí)行SQL語句的所有方法。
5)Executor executor: MyBatis定義了一個Executor接口來操作數(shù)據(jù)庫,它會根據(jù)SqlSession傳遞的參數(shù)動態(tài)生成要執(zhí)行的SQL語句,同時還負責維護查詢緩存。
6)MappedStatement對象:在Executor接口的執(zhí)行方法中有一個MappedStatement類型的參數(shù),封裝了映射信息,用于存儲要映射的SQL語句的id、參數(shù)等信息。
7)輸入?yún)?shù)映射:輸入?yún)?shù)類型可以是map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸入?yún)?shù)映射過程類似于JDBC ;為preparedStatement對象設置參數(shù)的過程。
8)輸出結果映射:輸出結果類型可以是map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸出結果的映射過程類似于JDBC ;結果集的解析過程。