运行的时候,先加载全局配置文件mybatis-config.xml。然后需要通过SqlSessionFactoryBuilder调用build方法把配置数据放到Configuration中,然后调用一个重载的方法build将Configuration作为参数来创建DefaultSqlSessionFactory,DefaultSqlSessionFactory就是SqlSessionFactory的实现类。到此SqlSessionFactory就构建完成了。然后通过SqlSessionFactory来创建SqlSession,每次创建SqlSession需要有TransactionFactory来创建Transaction对象,然后需要创建SqlSession执行器Executor,最后实例化DefaultSqlSession。可以根据项目需求使用SqlSession接口中的API完成具体事务操作。
比如他是一个根据ID查询用户信息的操作,UserMapper.getUserById(id),它的底层是采用了动态代理技术。底层的execute方法中通过switch语句来选择执行增上改查
https://blog.youkuaiyun.com/weixin_33755649/article/details/93175743
https://blog.youkuaiyun.com/u010890358/article/details/80665753
https://blog.youkuaiyun.com/qq_21150865/article/details/84305338