1、什麼是 mybatis?
答:mybatis 是乙個可以自定義 sql、儲存過程和高階對映的持久層框架。
2、講下 mybatis 的快取
答:mybatis 的快取分為一級快取和二級快取,一級快取放在 session 裡面,預設就有,二級緩
存放在它的命名空間裡,預設是不開啟的,使用二級快取屬性類需要實現 serializable 序列化
介面(可用來儲存物件的狀態),可在它的對映檔案中配置
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()方法,然後在給外掛程式編寫註解,指定
要攔截哪乙個介面的哪些方法即可,記住,別忘了在配置檔案中配置你編寫的外掛程式。
5、mybatis 動態 sql 是做什麼的?都有哪些動態 sql?能簡述一下動態 sql 的執行原理不?
答:1)mybatis 動態 sql 可以讓我們在 xml 對映檔案內,以標籤的形式編寫動態 sql,完成邏輯
判斷和動態拼接 sql 的功能。
2)mybatis 提供了 9 種動態 sql 標籤:
trim|where|set|foreach|if|choose|when|otherwise|bind。 3)其執行原理為,使用 ognl 從 sql 引數物件中計算表示式的值,根據表示式的值動態拼
接 sql,以此來完成動態 sql 的功能。
6、#{}和katex parse error: expected 'eof', got '#' at position 16: {}的區別是什麼? 答: 1)#̲{}是預編譯處理,{}是字串替換。
2)mybatis 在處理#{}時,會將 sql 中的#{}替換為?號,呼叫 preparedstatement 的 set 方法
來賦值;
3)mybatis 在處理時,就
是把
{}時,就是把
時,就是
把 量變數
變數變成了$ 3)原來在 sql 節點裡面的 class 都換名字交 type
4)原來的 queryforobject queryforlist 變成了 selectone selectlist5)原來的別名設定在映
射檔案裡面放在了核心配置檔案裡
Kafka面試專題及答案2019
kafka 將訊息以 topic 為單位進行歸納 將向 kafka topic 發布訊息的程式成為 producers.將預訂 topics 並消費訊息的程式成為 consumer.kafka 以集群的方式執行,可以由乙個或多個服務組成,每個服務叫做乙個 broker.producers 通過網路將...
mybatis專題 常更新
一 對於xml檔案中使用foreach遍歷集合的使用 foreach元素的屬性主要有item,index,collection,open,separator,close。在使用foreach的時候最關鍵的也是最容易出錯的就是collection屬性,該屬性是必須指定的,但是在不同情況下,該屬性的值是...
15個Google面試題以及答案
1 村子裡有100對夫妻,其中每個丈夫都瞞著自己的妻子 村里的每個妻子都能立即發現除自己丈夫之外的其他男人是否 唯獨不知道她自己的丈夫到底有沒有 村里的規矩不容忍通姦。任何乙個妻子,一旦能證明自己的男人 就必須當天把他殺死。村里的女人全都嚴格照此規矩辦事。一天,女頭領出來宣布,村里至少有乙個丈夫 請...