mybatis_基礎篇

 

    MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,而且更名爲MyBatis 。2013年11月遷移到Github。    MyBatis是一個優秀的持久層框架,它對jdbc的操做數據庫的過程進行封裝,使開發者只須要關注 SQL 自己,而不須要花費精力去處理例如註冊驅動、建立connection、建立statement、手動設置參數、結果集檢索等jdbc繁雜的過程代碼。java

    Mybatis經過xml或註解的方式將要執行的各類statement(statement、preparedStatemnt、CallableStatement)配置起來,並經過java對象和statement中的sql進行映射生成最終執行的sql語句,最後由mybatis框架執行sql並將結果映射成java對象並返回。sql

 

2、mybatis和hibernate的區別:數據庫

hibernate:它是一個ORM框架,自動化程度高,不用寫sql語句,學習成本也高,編寫代碼的效率也高。
應用場景: 外包公司用的較多, 還有作傳統企業項目(oa, erp, crm)。
mybatis:它是一個不徹底的orm框架, 它是jdbc的輕量級封裝.必須編寫sql語句, 學習成本低, 比較簡單。
應用場景: 互聯網公司(互聯網金融, 電商, 互聯網旅遊等等)。

 

3、mybatis架構:apache

組件介紹編程

  • mybatis配置:SqlMapConfig.xml,此文件做爲mybatis的全局配置文件,配置了mybatis的運行環境等信息。mapper.xml文件即sql映射文件,文件中配置了操做數據庫的sql語句。此文件須要在SqlMapConfig.xml中加載。
  •   經過mybatis環境等配置信息構造SqlSessionFactory即會話工廠
  • 由會話工廠建立sqlSession即會話,操做數據庫須要經過sqlSession進行
  • mybatis底層自定義了Executor執行器接口操做數據庫,Executor接口有兩個實現,一個是基本執行器、一個是緩存執行器。
  • Mapped Statement也是mybatis一個底層封裝對象,它包裝了mybatis配置信息及sql映射信息等。mapper.xml文件中一個sql對應一個Mapped Statement對象,sql的id便是Mapped statement的id
  • Mapped Statement對sql執行輸入參數進行定義,包括HashMap、基本類型、pojo,Executor經過Mapped Statement在執行sql前將輸入的java對象映射至sql中,輸入參數映射就是jdbc編程中對preparedStatement設置參數
  • Mapped Statement對sql執行輸出結果進行定義,包括HashMap、基本類型、pojo,Executor經過Mapped Statement在執行sql後將輸出結果映射至java對象中,輸出結果映射過程至關於jdbc編程中對結果的解析處理過程
相關文章
相關標籤/搜索