Java面試——2018年MyBatis常見實用面試題!
1、什麼是MyBatis?
答:MyBatis是一個可以自定義SQL、儲存過程和高階對映的持久層框架。

2、講下MyBatis的快取
答:MyBatis的快取分為一級快取和二級快取,一級快取放在session裡面,預設就有,二級快取放在它的名稱空間裡,預設是不開啟的,使用二級快取屬性類需要實現Serializable序列化介面(可用來儲存物件的狀態),可在它的對映檔案中配置<cache/>
3、Mybatis是如何進行分頁的?分頁外掛的原理是什麼?
答:
1)Mybatis使用RowBounds物件進行分頁,也可以直接編寫sql實現分頁,也可以使用Mybatis的分頁外掛。
2)分頁外掛的原理:實現Mybatis提供的介面,實現自定義外掛,在外掛的攔截方法內攔截待執行的sql,然後重寫sql。
舉例:select * from student,攔截sql後重寫為:select t.* from (select * from student)t limit 0,10

4、簡述Mybatis的外掛執行原理,以及如何編寫一個外掛?
答:
1)Mybatis僅可以編寫針對ParameterHandler、ResultSetHandler、StatementHandler、Executor這4種介面的外掛,Mybatis通過動態代理,為需要攔截的介面生成代理物件以實現介面方法攔截功能,每當執行這4種介面物件的方法時,就會進入攔截方法,具體就是InvocationHandler的invoke()方法,當然,只會攔截那些你指定需要攔截的方法。
2)實現Mybatis的Interceptor介面並複寫intercept()方法,然後在給外掛編寫註解,指定要攔截哪一個介面的哪些方法即可,記住,別忘了在配置檔案中配置你編寫的外掛。
我自己是一名大資料架構師,目前辭職在做線上教育大資料講師,每天都會直播分享免費公開課,大家可以加群參加。以及我自己整理了一套最新的大資料學習系統教程,包括Hadoop,資料探勘,資料分析。送給正在學習大資料的小夥伴!這裡是大資料學習者聚集地,歡迎初學和進階中的小夥伴!加QQ群:584900118