MyBatis詳細執(zhí)行流程的全紀錄
Mybatis簡介
MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數(shù)以及獲取結果集。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄。
mybatis詳細執(zhí)行流程
一、通過Resource去加載全局配置文件
import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MyBatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } }
二、實例化sqlSessionFactoryBuilder構造器
三、通過build中XmlConfigBuilder類去解析文件流以及環(huán)境和屬性
四、 將配置信息存放到Configuration中
五、然后實例化SqlSessionFactory實現(xiàn)類DefaultSqlSessionFactory此時進入底層實現(xiàn)流程
六、由TransactionFactory 創(chuàng)建一個Transaction事務對象
七、創(chuàng)建執(zhí)行器Excutor,去執(zhí)行mapper
八、 創(chuàng)建SqlSession接口實現(xiàn)類DefaultSqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession() UserMapper mapper = sqlSession.getMapper(UserMapper.class);
九、 實現(xiàn)CURD
十、判斷是否執(zhí)行成功,若沒有則回滾到事務提交器
十一、 事務提交
sqlSession.commit();
十二、 關閉
sqlSession.close();
后序
努力去看源碼,加以理解分析
并且熟練使用DeBug模式來調試程序,以及查看代碼底層是如何實現(xiàn)的。
總結
到此這篇關于MyBatis詳細執(zhí)行流程的文章就介紹到這了,更多相關MyBatis執(zhí)行流程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java日期操作方法工具類實例【包含日期比較大小,相加減,判斷,驗證,獲取年份等】
這篇文章主要介紹了Java日期操作方法工具類,結合完整實例形式分析了java針對日期的各種常見操作,包括日期比較大小,相加減,判斷,驗證,獲取年份、天數(shù)、星期等,需要的朋友可以參考下2017-11-11SpringBoot實戰(zhàn)之實現(xiàn)結果的優(yōu)雅響應案例詳解
這篇文章主要介紹了SpringBoot實戰(zhàn)之實現(xiàn)結果的優(yōu)雅響應案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)登錄接口整合阿里云短信詳情
這篇文章主要為大家介紹了實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)登錄接口整合阿里云短信詳情,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2022-04-04SpringBoot中使用Servlet三大組件的方法(Servlet、Filter、Listener)
這篇文章主要介紹了SpringBoot中使用Servlet三大組件的方法(Servlet、Filter、Listener),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Springboot整合spring-boot-starter-data-elasticsearch的過程
本文詳細介紹了Springboot整合spring-boot-starter-data-elasticsearch的過程,包括版本要求、依賴添加、實體類添加、索引的名稱、分片、副本設置等,同時,還介紹了如何使用ElasticsearchRepository類進行增刪改查操作2024-10-10