本文首发于cartoon的博客
转载请注明出处:cartoonyu.github.io/cartoon-blo…前端
- Mybatis 逻辑分页和物理分页的区别是什么?
- 分页是为了节省网络传输的数据量
- 逻辑分页是将数据所有加载到内存,再经过后端逻辑控制分页显示到前端
- 物理分页是在数据库层面分部分获取数据,一般状况下对内存的压力较逻辑分页少
- Mybatis 是否支持延迟加载?延迟加载的原理是什么?
- Mybatis支持延迟加载
- 打开方式
- 在config文件中打开延迟加载的开关()
- 将积极加载改成延迟加载()
- 延迟加载原理
- 多表关联查询只查询当前表的数据
- 当须要查询关联表的数据时才二次查询关联表的数据
- 说一下 Mybatis 的一级缓存和二级缓存?
- 一级缓存是在SqlSession上实现的(默认)
- 一次查询时,SqlSession查询数据库,并将数据缓存
- 二次查询时,SqlSession查询缓存
- 当使用该SqlSession执行DML操做时,缓存失效
- 二级缓存是在Mapper上实现的
- 一次查询时,数据缓存在Mapper上
- 使用相同/不一样SqlSession查询时,返回Mapper层面的缓存
- 一样,当出现DML语句时,缓存失效
- Mybatis 和 Hibernate 的区别有哪些?
- 参考地址:blog.csdn.net/wangpeng047…
- Hibernate全自动,MyBatis半自动
- Hibernate经过对象关系模型实现对数据库操做,自动生成sql
- MyBatis只有基本的字段映射,须要手写sql
- Hibernate移植性比MyBatis好
- Hibernate经过对象关系模型生成sql,所以能根据数据库不一样生成相应的sql
- MyBatis手写sql,因此会出现sql语法不支持的状况
- Hibernate日志系统比MyBatis完善
- MyBatis比Hibernate须要关注更多细节
- MyBatis须要自定义的东西比Hibernate多,所以须要关心更多细节
- MyBatis在优化sql上比Hibernate方便
- MyBatis须要手写sql,因此优化sql语句比较方便
- Hibernate经过对象关系模型生成sql,因此直接优化sql比较麻烦
- Hibernate的二级缓存机制比MyBatis完善