接口层主要就是指MyBatis对外提供的API,平常项目中直接使用到的。
三、接口层
相关模式:策略模式。
SqlSession接口:对外提供MyBatis常用API,定义了常用的数据库操作以及事务相关操作。
SqlSessionFactory接口:负责创建SqlSession对象,通过参数指定事务隔离级别、底层使用Executor具体类型以及是否自动提交事务等方面的配置。
DefaultSqlSession:实现SqlSession接口,其中包括的Executor就是体现策略模式,不同Executor的就可以对应不同的执行。
DefaultSqlSessionFactory:实现SqlSessionFactory接口,根据数据库连接创建Executor对象以及DefaultSqlSession对象。
SqlSessionManager:同时实现SqlSession接口和SqlSessionFactory接口,它主要是提供了两种创建SqlSession对象的模式,一种和DefaultSqlSessionFactory一样,同一个线程每次访问数据库都会创建新的SqlSession对象来完成数据库操作,而另一种模式则是利用ThreadLocal记录当前线程的SqlSession来循环使用。