mybatis重要组成:
Configuration:基础配置,xml及properties等文件。
SqlSessionFactoryBuilder:通过Configuration获得资源生成SqlSessionFactory,存在的意义就是构建SqlSessionFactory,构建完毕,即可废弃回收。
SqlSessionFactory:顾名思义,就是用来创建SqlSession的,SqlSession相当于JDBC的Connection,是一个会话,每当应用程序需要访问数据库时,就需要通过SqlSessionFactory创建SqlSession。因为SqlSessionFactory的唯一功能是生成SqlSession,而每次生成SqlSessionFactory时都会打开数据库连接资源,所以使用单例模式可以避免资源消耗方便统一管理连接资源。
SqlSession:SqlSession相当于一个会话,它的生命周期是在数据库处理事务的过程中;每次创建SqlSession处理完之后,需要及时关闭,避免占用过多数据连接资源。它存活于应用的请求和处理,并且可以执行多条Sql.
Mapper:对应真实的SQL,并与POJO和数据库字段做转换,发送SQL并返回结果数据的作用。
SqlSession四大对象:
Executor执行器,调度StatementHandler、ParameterHandler、ResultHandler等执行SQL;
StatementHandler 使用数据库的Statement执行操作,对SQL进行预编译;
ParameterHandler 用于SQL对参数的处理;
ResultHandler 是进行最后数据集的封装返回处理。
SqlSession的内部运行流程图如下。(出自《深入浅出MyBatis技术原理与实战》)