SqlSessionFactoryBuilder:數據庫
SqlSessionFactoryBuilder負責構建SqlSessionFactory。它的最大特色是:用過即丟。一旦建立了SqlSessionFactory對象以後,這個類就不須要存在了,所以SqlSessionFactoryBuilder的最佳範圍就是存在於方法體內,也就是局部變量而已。app
SqlSessionFactory:ui
SqlSessionFactory簡單的理解就是建立SqlSession實例的工廠。全部的MyBatis應用都是以SqlSessionFactory實例爲中心,SqlSessionFactory的實例能夠經過SqlSessionFactoryBuilder對象來得到。有了SqlSessionFactory實例後,就能夠經過SqlSessionFactory實例的openSession()方法來獲取SqlSession實例。對象
SqlSessionFactory對象一旦建立,就會在整個應用運行過程當中始終存在。沒有理由去銷燬或再建立它,而且在應用運行中也不建議屢次建立SqlSessionFactory。所以SqlSessionFactory的最佳做用域是Application,即隨着應用的生命週期一同存在。接口
SqlSession:生命週期
SqlSession是用於執行持久化操做的對象,相似於JDBC中的Connection。它提供了面向數據庫執行SQL命令所需的酥油方法,能夠經過SqlSession實例直接運行已映射的SQL語句。作用域
SqlSession對應着一次數據庫會話,因此每次訪問數據庫時都須要建立它。建立SqlSession的地方只有一個,就是SqlSessionFactory實例的openSession()方法。(但一個SqlSession會話也能夠執行屢次SQL)io
SqlSession的兩種使用方式:直接經過SqlSession實例來執行已映射的SQL語句、基於mapper接口方式操做數據。變量