SSM-Mybatis-生命周期
SqlSessionFactoryBuilder
它的作用是创建SqlSessionFacoty,创建成功后就失去作用了,所以它只能存在于创建SqlSessionFactory的方法中,不要让其长期存储
SqlSessionFactory
可以被理解成一个数据库连接池,用于创建SqlSession接口对象,所以SqlSessionFactory的生命周期等同于Mybatis的应用周期,因为充当着数据库连接池角色,占据着数据库连接资源,如果创建多个可能会导致系统崩溃,所以往往希望SqlSessionFactory作为一个单例,让他在应用中被共享
SqlSession
充当着数据库连接的角色(Connection对象),可在里面执行多条SQL,通过commit ,rollback等方法,提交和回滚事务,所以它应该存活在一个业务请求中,处理完后,应该关闭这条连接,归还SQLSessionFactory,否则数据库资源会被消耗殆尽,系统崩溃。
Mapper
应为是SqlSession创建的,所以他的生命周期最多和SqlSession一致,所以SqlSession的关闭,他的数据库连接资源也会消失。Mapper代表的是一个请求中的业务处理,所以它应该在一个请求中,一旦业务处理完,就应该废气它。
该在一个请求中,一旦业务处理完,就应该废气它。