mybatis源码分析之缓存机制

概述mybatis提供了缓存机制减轻数据库压力,提高数据库性能。mybatis的缓存分为两级:一级缓存、二级缓存。一级缓存是SqlSession级别的缓存,缓存的数据只在SqlSession内有效。二级缓存是mapper级别的缓存,同一个namespace共用一个缓存,所以对SqlSession是共享的。

mybatis源码分析之插件机制

概述mybatis插件又被称为拦截器,mybaits采用责任链模式,通过动态代理组织多个插件,通过这些插件可以改变mybatis的默认行为。mybatis允许在映射语句执行的某一点进行拦截调用。默认情况下,mybatis使用允许使用插件来拦截方法的调用包括:

MyBatis源码分析之执行器

概述执行器是Mybatis的核心接口之一,接口层提供的相关数据库操作都是基于Executor的子类实现的。

mybatis源码分析一

我们从最简单的一段代码开始,分析清楚mybatis的大致工作流程。然后再从代码细节上分析mybatis的一些特性。 基础代码示例1234567891011121314151617public class test { public static void main(String[] args) throws IOException{ String resource = "example/mybatis-config.xml"; // 加载配置文件 并构建SqlSessionFactory对象 InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream); // 从SqlSessionFactory对象中获取 SqlSession对象 SqlSession sqlSession = factory.openSession(); // 执行操作 User user=new User(); user.setId(1); Object u= (User)sqlSession.selectOne("getUser", user); System.out.println(u.toString()); // 关闭SqlSession sqlSession.close(); }}