本文首發於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完善