Mybatis常見面試題


1.Mybatis比IBatis比較大的幾個改進是什么

a.有接口綁定,包括注解綁定sql和xml綁定Sql ,

b.動態sql由原來的節點配置變成OGNL表達式,

c. 在一對一,一對多的時候引進了association,在一對多的時候引入了collection 節點,不過都是在resultMap里面配置

2.什么是MyBatis的接口綁定,有什么好處

接口映射就是在IBatis中任意定義接口,然后把接口里面的方法和SQL語句綁定, 我們直接調用接口方法就可以,這樣比起原來了SqlSession提供的方法我們可以有更加靈活的選擇和設置.

3.接口綁定有幾種實現方式,分別是怎么實現的?

接口綁定有兩種實現方式,一種是通過注解綁定,就是在接口的方法上面加上 @Select@Update等注解里面包含Sql語句來綁定,

另外一種就是通過xml里面寫SQL來綁定, 在這種情況下,要指定xml映射文件里面的namespace必須為接口的全路徑名.

4.什么情況下用注解綁定,什么情況下用xml綁定 當Sql語句比較簡單時候,用注解綁定,

SQL語句比較復雜時候,用xml綁定,一般用xml綁定的比較多

5.MyBatis實現一對一有幾種方式?具體怎么操作的

有聯合查詢和嵌套查詢,聯合查詢是幾個表聯合查詢,只查詢一次, 通過在resultMap里面配置association節點配置一對一的類就可以完成;

嵌套查詢是先查一個表,根據這個表里面 的結果的外鍵id,去再另外一個表里面查詢數據,也是通過association配置,但另外一個表 的查詢通過select屬性配置

6.MyBatis實現一對多有幾種方式,怎么操作的

有聯合查詢和嵌套查詢,聯合查詢是幾個表聯合查詢,只查詢一次,通過在resultMap里面配 置collection節點配置一對多的類就可以完成;

嵌套查詢是先查一個表,根據這個表里面的 結果的外鍵id,去再另外一個表里面查詢數據,也是通過配置collection,但另外一個表的 查詢通過select節點配置

7.MyBatis里面的動態Sql是怎么設定的?用什么語法?

MyBatis里面的動態Sql一般是通過if節點來實現,通過OGNL語法來實現,但是如果要寫的完 整,必須配合where,trim節點,where節點是判斷包含節點有內容就插入where,否則不插 入,trim節點是用來判斷如果動態語句是以and 或or開始,那么會自動把這個and或者or取 掉

8.IBatis和MyBatis在核心處理類分別叫什么

IBatis里面的核心處理類交SqlMapClient, MyBatis里面的核心處理類叫做SqlSession

9.IBatis和MyBatis在細節上的不同有哪些

sql里面變量命名有原來的#變量# 變成了#{變量} 原來的$變量$變成了${變量}, 原來在sql節點里面的class都換名字交type 原來的queryForObject queryForList 變成了selectOne selectList 原來的別名設置在映射文件里面放在了核心配置文件里

10.講下MyBatis的緩存

MyBatis的緩存分為一級緩存和二級緩存, 一級緩存放在session里面,默認就有,二級緩存放在它的命名空間里,默認是打開的, 使用二級緩存屬性類需要實現Serializable序列化接 口(可用來保存對象的狀態),可在它的映射文件中配置<cache/>

11.MyBatis(IBatis)的好處是什么

ibatis把sql語句從Java源程序中獨立出來, 放在單獨的XML文件中編寫,給程序的維護帶來了很大便利。 ibatis封裝了底層JDBC API的調用細節,並能自動將結果集轉換成Java Bean對象, 大大簡化了Java數據庫編程的重復工作。 因為Ibatis需要程序員自己去編寫sql語句, 程序員可以結合數據庫自身的特點靈活控制sql語句, 因此能夠實現比hibernate等全自動orm框架更高的查詢效率,能夠完成復雜查詢。.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM