Mybatis StatementHandler 執(zhí)行流程如下:
- 當(dāng)用戶發(fā)起一個查詢請求時,Mybatis會根據(jù)用戶傳入的SQL語句創(chuàng)建一個StatementHandler對象。
- StatementHandler會根據(jù)配置文件中的數(shù)據(jù)庫廠商信息,選擇合適的Statement類型(如PreparedStatement、CallableStatement等)。
- StatementHandler會根據(jù)用戶傳入的SQL語句參數(shù),設(shè)置Statement對象的參數(shù)。
- StatementHandler會調(diào)用Mybatis的ParameterHandler對象,將參數(shù)傳遞給ParameterHandler對象,ParameterHandler對象會根據(jù)參數(shù)類型設(shè)置Statement對象的參數(shù)。
- StatementHandler會調(diào)用Mybatis的ResultSetHandler對象,處理Statement對象執(zhí)行SQL語句后返回的結(jié)果集。
- ResultSetHandler會將結(jié)果集映射為用戶定義的Java對象,并返回給用戶。
總的來說,StatementHandler負(fù)責(zé)處理SQL語句的執(zhí)行和結(jié)果的處理,而ParameterHandler負(fù)責(zé)處理SQL語句的參數(shù)設(shè)置,ResultSetHandler負(fù)責(zé)處理結(jié)果集的映射。在整個執(zhí)行流程中,StatementHandler起到了中間橋梁的作用,協(xié)調(diào)各個組件完成SQL語句的執(zhí)行和結(jié)果的處理。