SqlSessionFactoryBuilder
对象,调用build(inputstream)方法读取并解析配置文件mybatis-config.xml
,返回SqlSessionFactory
对象。SqlSessionFactory
建立SqlSession
对象,没有手动设置的话事务默认开启。SqlSession
实例得到Mapper对象
并运行Mapper
映射的SQL
语句,完成对数据库的CRUD和事务
提交说明:SqlSession是单线程对象,由于它是非线程安全的,是持久化操做的独享对象,相似jdbc中的Connection,底层就封装了jdbc链接。
详细流程以下:sql
mybatis
全局配置文件(数据源、mapper映射文件等),解析配置文件,MyBatis基于XML配置文件生成Configuration
,和一个个MappedStatement
(包括了参数映射配置、动态SQL语句、结果映射配置),其对应着<select | update | delete | insert>标签项。SqlSessionFactoryBuilder
经过Configuration
对象生成SqlSessionFactory
,用来开启SqlSession
。SqlSession
对象完成和数据库的交互:Executor
(负责动态SQL的生成和查询缓存的维护)将MappedStatement
对象进行解析,sql参数转化、动态sql拼接,生成jdbc Statement对象