MyBatis詳細執行流程的全紀錄
Mybatis簡介
MyBatis 是一款優秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。MyBatis 避免瞭幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。
mybatis詳細執行流程
一、通過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類去解析文件流以及環境和屬性
四、 將配置信息存放到Configuration中
五、然後實例化SqlSessionFactory實現類DefaultSqlSessionFactory此時進入底層實現流程
六、由TransactionFactory 創建一個Transaction事務對象
七、創建執行器Excutor,去執行mapper
八、 創建SqlSession接口實現類DefaultSqlSession
SqlSession sqlSession = MybatisUtils.getSqlSession() UserMapper mapper = sqlSession.getMapper(UserMapper.class);
九、 實現CURD
十、判斷是否執行成功,若沒有則回滾到事務提交器
十一、 事務提交
sqlSession.commit();
十二、 關閉
sqlSession.close();
後序
努力去看源碼,加以理解分析
並且熟練使用DeBug模式來調試程序,以及查看代碼底層是如何實現的。
總結
到此這篇關於MyBatis詳細執行流程的文章就介紹到這瞭,更多相關MyBatis執行流程內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- None Found