溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyBatis--01.基礎

發(fā)布時間:2020-08-06 08:16:17 來源:網絡 閱讀:351 作者:zjLinky 欄目:開發(fā)技術

1.Mybatis的基本組成

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

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

  • SqlSession:即可以發(fā)送SQL去執(zhí)行并返回結果,也可以獲取Mapper的接口

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

2.生命周期

  • SqlSessionFactoryBuilder :
    作用就是創(chuàng)建SQLSessionFactory,所以創(chuàng)建完成后作用即完成,將它回收,所以它的生命周期只存在于方法的局部。

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

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

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


向AI問一下細節(jié)
推薦閱讀:
  1. soapui基礎
  2. iptables基礎

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI