噓!這是一個拋棄JDBC的故事,認真點。


點擊上方“ Java進階學習交流 ”,進行關注

後臺回覆“Java”即可獲贈Java學習資料

寄意寒星荃不察,我以我血薦軒轅。

01

MyBatis框架






111。。1



MyBatis介紹

  • 一個框架,早期叫做ibatis, 代碼在github。

  • mybatis是(MyBatis SQL Mapper Framework for Java )(sql映射框架)

  • sql mapper : sql映射,可以把數據庫表中的一行數據映射爲一個java對象。一行數據可以看做是一個java對象。操作這個對象,就相當於操作表中的數據。

  • Data Access Objects(DAO) : 數據訪問,對數據庫執行增刪改查。


2



MyBatis 提供的功能

  • 提供了創建Connection ,Statement, ResultSet的能力 ,不用開發人員創建這些對象了。

  • 提供了執行sql語句的能力,不用你執行sql。

  • 提供了循環sql,把sql的結果轉爲java對象、List集合的能力。

  • 提供了關閉資源的能力,不用你關閉Connection, Statement, ResultSet。



3



開發人員做的工作

開發人員負責提供sql語句--->MyBatis處理sql--->開發人員得到List集合或者java對象(表中的數據)。


4



MyBatis的總結概述

  • mybatis是一個sql映射框架,提供的數據庫的操作能力。增強的JDBC, 使用mybatis讓開發人員集中精神寫sql就可以了,不必關心Connection,Statement,ResultSet 的創建,銷燬,sql的執行。

02

MyBatis對象分析






1



Resources 類

Resources 類,顧名思義就是資源,用於讀取資源文件。其有很多方法通過加載並解析資源文件,返回不同類型的IO流對象。


2



SqlSessionFactoryBuilder 類

SqlSessionFactory的創建,需要使用SqlSessionFactoryBuilder對象的build()方法。由於SqlSessionFactoryBuilder對象在創建完工廠對象後,就完成了其歷史使命,即可被銷燬。

所以,一般會將該SqlSessionFactoryBuilder 對象創建爲一個方法內的局部對象,方法結束,對象銷燬。


3



SqlSessionFactory接口

  • SqlSessionFactory 接口對象是一個重量級對象(系統開銷大的對象),是線程安全的,所以一個應用 只需要一個該對象即可。創建SqlSession需使用SqlSessionFactory接口的openSession()方法。

  • SqlSessionFactory 這個接口的實現類是DefaultSqlSessionFactory。這個實現類中有openSession()方法,使用這個接口就是爲了使用這個openSession()方法來獲取SqlSession對象。


  • SqlSessionFactory作用 :獲取SqlSession對象。

openSession()方法的幾種形式:

➢ openSession(true):創建一個有自動提交功能的 SqlSession

➢ openSession(false):創建一個非自動提交功能SqlSession,需手動提交 。

➢ openSession():無參數獲取的是非自動提交事務的SqlSession對象。


4



SqlSession接口

  • SqlSession 接口對象用於執行持久化操作。一個 SqlSession 對應着一次數據庫會話,一次會話以 SqlSession 對象的創建開始,以 SqlSession 對象的關閉結束。SqlSession 接口對象是線程不安全的,所以每次數據庫會話結束前,需要馬上調用其 close()方法,將 其關閉。再次需要會話,再次創建。SqlSession 在方法內部創建,使用完畢後關閉。

  • SqlSession 接口 : 定義了操作數據的方法。例如 selectOne() 、selectList() 、insert()、update()、delete()、commit()、rollback()。

  • SqlSession接口的實現類DefaultSqlSession。

03

mybatis動態代理





  • mybatis根據 dao的方法調用,獲取執行sql語句的信息。mybatis根據你的dao接口,創建出一個dao接口的實現類,並創建這個類的對象。成SqlSession調用方法,訪問數據庫。

  • 就是我們不用在自己創建 StudentDao接口的實現類 StudentDaoImpl由mybatis根據dao接口自己創建出這個實現類,並完成數據的調用。這個時候我們只需要提供接口即可,剩下的交給mybatis

------------------- End -------------------

往期精彩文章推薦:

歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支持

想加入Java學習羣請在後臺回覆【入羣

萬水千山總是情,點個【在看】行不行

本文分享自微信公衆號 - Java進階學習交流(java_xianghong)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章