面试整理——Mybatis

Mybatis

第一节 综合

问:Mybatis原理?

  • sqlsessionFactoryBuilder生成sqlsessionFactory(单例)
  • 工厂模式生成sqlsession执行sql以及控制事务
  • Mybatis通过动态代理使Mapper(sql映射器)接口能运行起来即为接口生成代理对象将sql查询到结果映射成pojo

问:sqlSessionFactory构建过程?

  • 解析并读取配置中的xml创建Configuration对象 (单例)
  • 使用Configruation类去创建sqlSessionFactory(builder模式)

问:Mybatis一级缓存与二级缓存?

默认情况下一级缓存是开启的,而且是不能关闭的。

  • 一级缓存是指 SqlSession 级别的缓存 原理:使用的数据结构是一个 map,如果两次中间出现 commit 操作 (修改、添加、删除),本 sqlsession 中的一级缓存区域全部清空
  • 二级缓存是指可以跨 SqlSession 的缓存。是 mapper 级别的缓存; 原理: 是通过 CacheExecutor 实现的。CacheExecutor其实是 Executor 的代理对象

问:讲一下Mybatis基于接口完成查询的过程及原理?

问:讲一下Mybatis的一级缓存和二级缓存?


后端面试的所有知识点

参考内容均来自网络中网友分享,若内容涉及侵权请及时告知,我会尽快修改和删除相关内容