mybatis生命周期
- SqlSessionFactoryBuilder
SqlSessionFactoryBuilder用于创建SqlSessionFactory,当SqlSessionFactory创建完成后即失去作用。 - SqlSessionFactory
SqlSessionFactory可以认为是数据库连接池,用于创建SqlSession接口对象,生命周期存在于整个Mybatis的应用中,一旦创建就会长期存在,等同于Mybatis的生命周期。SqlSessionFactory占据着数据库的连接资源,创建多个SqlSessionFactory就会存在多个数据库连接池,导致数据库资源耗尽,所以用单例模式设计SqlSessionFactory,在应用中共享 - SqlSession
SqlSession相当于一个数据库连接(connection对象),存活于一个业务请求中,处理完请求后应当关闭连接。所以用try…catch…finally语句保证其正确关闭 - Mapper
Mapper由SqlSession创建,所以生命周期最多和SqlSession保持一致。Mapper代表请求中的业务处理,所以处理完业务后就应废弃。