mybatis一對多關(guān)聯(lián)查詢?nèi)绾螌崿F(xiàn) mybatis工作原理及流程?
mybatis工作原理及流程?1)讀取mybatis配置文件:mybatis-config.xml是MyBatis的全局配置文件,配置了MyBatis的運行環(huán)境等信息,比如數(shù)據(jù)庫連接信息。2)加載映射
mybatis工作原理及流程?
1)讀取mybatis配置文件:mybatis-config.xml是MyBatis的全局配置文件,配置了MyBatis的運行環(huán)境等信息,比如數(shù)據(jù)庫連接信息。
2)加載映射文件。映射文件是SQL映射文件,其中配置了操作數(shù)據(jù)庫的SQL語句,需要加載到MyBatis配置文件mybatis-config.xml中mybatis-config.xml文件可以加載多個映射文件,每個文件對應(yīng)數(shù)據(jù)庫中的一個表。
3)構(gòu)建會話工廠:通過MyBatis 等配置信息構(gòu)建會話工廠SqlSessionFactory。;環(huán)境。
4)創(chuàng)建一個session對象:session工廠創(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è)置參數(shù)的過程。
8)輸出結(jié)果映射:輸出結(jié)果類型可以是map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸出結(jié)果的映射過程類似于JDBC ;結(jié)果集的解析過程。
mybatis實現(xiàn)一對多及多對多聯(lián)查詢的元素是?
它們是以下兩種:
1.關(guān)聯(lián)-關(guān)聯(lián)[多對一]
2.集合-集合[一對多]
mybatis四個特性?
Mybatis是一個持久性框架,也屬于ORM映射。原名伊巴蒂斯。
與hibernatehibernate相比,它是全自動化的,在配置文件寫好之后就不需要再寫sql語句了,但是缺乏靈活性,經(jīng)常需要優(yōu)化。
Mybatis是半自動的,所以您需要編寫自己的sql語句并定義自己的映射。它增加了程序員和。;的操作,但是帶來了設(shè)計上的靈活性,并且還支持hibernate的一些特性,比如延遲加載、緩存和映射;對數(shù)據(jù)庫的兼容性比hibernate差。移植性不好,但是可以寫出靈活高效的sql語句。