1. 程式人生 > 其它 >MyBatis的執行原理

MyBatis的執行原理

為什麼要使用mybatis?(JDBC的弊端)

什麼是框架?

框架是一個半成品,已經對基礎的程式碼進行了封裝並提供相應的API,開發者在使用框架是直接呼叫封裝好的api可以省去很多程式碼編寫,從而提高工作效率和開發速度。

框架定義: 框架是一種經過校驗 具有一定功能的半成品軟體。

經過校驗:指框架本身經過測試 並且框架自身所具有的功能已經實現。

具有一定的功能: 指框架可以完成特定的功能 不同的框架功能不同。

半成品軟體: 指框架自身是一個軟體,但是改軟體無法。

MyBatis可以將SQL語句配置在XML檔案中 這避免了JDBC在java類中新增SQL語句的問題;通過MyBatis提供的輸入引數對映方式 將引數只有靈活地配置在SQL語句配置檔案中,解決了JDBC中引數在java類中手工配置的問題;通過MyBatis的輸出對映機制,將結果集的檢索自動對映成相應的java物件,避免了JDBC中對結果集的手工檢索;同時MyBatis還可以建立自己的資料庫連線池,使用XML配置檔案的形式,對資料庫連線資料進行管理,避免了JDBC的資料庫連線引數的硬編碼問題。

綜上所述,MyBatis的特點是,採用配置檔案動態管理Sql語句,並含有輸入對映,輸出對映機制及資料庫連線池配置的持久層框架。

MyBatis優點--(面試題)

簡單:易於學習,易於使用,通過文件和原始碼,可以比較安全的掌握它的設計思路和實現。

實用:通過了資料對映功能,提供了對底層資料訪問的封裝,提供了DAO框架,可以使我們更容易的開發和配置。

靈活:通過SQL基本上可以實現我們不使用資料訪問框架可以實現的所有功能,或許更多。

功能完整:提供了連線管理,快取支援,執行緒支援(分散式) 事務管理,通過配置關係物件對映等資料訪問需要解決的問題。提供了DAO支援,並在DAo框架中封裝了DAO.NET NHibernate 和DataMapper.

增強系統的可維護性: 將業務邏輯和資料訪問邏輯分離,使系統的設計更清晰,更易維護 更易單元測試。SQL和程式碼的分離,提高了可維護性。

MyBatis整體架構,mybatis的執行原理

MyBatis的配置有2類配置檔案 Mybatis-Config.xml 和Mapper.xml

MyBatis-Config.xml 配置了全域性的引數 全域性只有一個配置 檔名稱不是固定的 隨意取名,裡面是你資料庫的資訊和一些程式碼格式的設定

Mapper.xml 配置了sql Statement 改檔案可以有多個 每個配置檔案中可以有多個sql Statement 一句話這個配置檔案就是寫SQL語句的

2 通過配置檔案可以得到SqlSessionFactory

3通過SqlSessionFactory 得到SqlSession 得到Sessin後可以執行SQL

4SqlSessio 通過墊層提供的Executor(執行器)執行SQL

5MyBatis 將Mapper.xml 中的SqlStatement 解析為MappedStatement物件

6通過引數輸入 引數型別有三種,HashMap 簡單型別 pojo

7 在資料庫中執行SQL

8輸出得到結果 輸出型別有三種 HashMap 簡單型別 pojo

程式碼中的使用步驟:

1) 通過配置檔案建立SqlSessinFactory

2) SqlSessionFactory 建立SqlSession物件

3) 通過SqlSessin 操作資料庫

4)呼叫session.commit() 提交事務

5)呼叫session.close() 關閉會話