MyBatis--01.基礎

1.Mybatis的基本組成

  • SqlSessionFactoryBuilder(構造器):它會根據配置信息或者代碼來生成SqlSessionFactory(工廠接口)

  • SqlSessionFactory:依靠工廠來生成SqlSession(SQLSession會話:相當於JDBC中的Connection對象)

  • SqlSession:即可以發送SQL去執行並返回結果,也可以獲取Mapper的接口

  • SQL Mapper:它是Mybatis新設計的組件,它是由一個Java接口和Xml文件(或註解)構成的,需要給出對應的SQL和映射規則,它負責發送SQL去執行,並返回結果。

2.生命週期

  • SqlSessionFactoryBuilder :
    作用就是創建SQLSessionFactory,所以創建完成後作用即完成,將它回收,所以它的生命週期只存在於方法的局部。

  • SqlSessionFactory :
    每次應用程序需要訪問數據庫,我們就通過SQLSessionFactory來創建SQLSession(相當於Connection對象),所以SqlsessionFactory應該在Mybatis應用的整個生命週期中,其職責就是創建SQLSession,爲了節省數據庫的資源,我們採用單例模式,一個數據庫只對應一個SQLSessionFactory,管理好數據庫資源的分配。

  • SqlSessionFactory :
    是一個會話,相當於JDBC中的Connection對象,它的生命週期應該是請求數據庫處理事務的過程中。它是一個線程不安全的對象,在涉及多線程編程的過程中,要特別當心,此外每次創建完成後都要及時關閉,長期不關閉會嚴重影響數據庫的性能。我們往往在finally語句塊中關閉它。它存活在一個應用的請求和操作,可以執行多條SQL語句,保證事務的一致性。

  • SqlSessionFactory :
    Mapper是一個接口而沒有任何的實現類,它的作用是發送SQL,然後返回我們需要的結果,或者執行SQL從而修改數據庫中數據,因此它應該在一個SQLsession事務方法之內,是一個方法級別的東西,就如同JDBC中的一條SQL語句執行,最大範圍和SQLSession相同。


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