mybatis
执行流程
首先通过Resources类加载配置好的mybatis.xml配置文件,然后实例化(new)一个SqlSessionFactoryBuilder对象之后调用其build()方法。在build方法里有XMLconfigBuilder的一个对象,调用它的parse()去解析已经加载的配置文件。并将一个存有解析结果的configuration对象作为参数传给build(与上面的build不是同一个,方法的重载)方法,这个build方法会返回一个DefaultSqlSessionFactory对象。
在得到DefaultSqlSessionFactory对象调用其openSession()方法得到sqlSession。在构建SqlSession的同时还生成transaction(事务)和executor(执行器,用于发送并且执行sql语句)用于后续执行操作。
二级缓存
一级缓存:
mybatis默认开启的sqlSession级别的缓存,会将我们第一次查询的数据放入sqlSession中,在第二次查询时直接从sqlSession中获取。当sqlSession关闭缓存清空,执行增、删、改操作也会使一级缓存失效(如果修改的是缓存中的数据,那么当再次查询时再到缓存中取明显不合适。所以在执行了DML操作后会清空一级缓存)。
二级缓存:
二级缓存也叫全局缓存需要手动开启。他是mapper级别的缓存,解决了一级缓存的局限性,可以实现sqlsession之间的资源共享。
要启动二级缓存只需要在mapper映射文件中加