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框架更高的查詢效率,能夠完成複雜查詢。.
mybatis 面試題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
SQL語句執行 -- SQL語句的生成 -- Java的StringBuffer類
jijian_jinan
2018-08-27 19:46:33
<MyBatis緩存機制>一級緩存源碼淺析
auleit
2018-08-27 19:17:02
Spring3 整合MyBatis3 配置多數據源 動態選擇SqlSessionFactory
golly_tl
2018-08-27 19:01:59
Spring3.3 整合 Hibernate3、MyBatis3.2 配置多數據源/動態切換數據源 方法
golly_tl
2018-08-27 19:01:59
Mybatis-Generator命令行自動生成代碼
季末工作室
2018-08-27 18:56:29
Mybatis基礎學習-緩存
树树在变干
2018-08-27 18:55:17
Mybatis的mapper接口函數重載問題
树树在变干
2018-08-27 18:55:16
推薦一款軟件mybatis-generator-gui
Andy2019
2018-08-27 18:53:35
mybatis自定義枚舉轉換類
Andy2019
2018-08-27 18:53:34
mybatis SQL語句複用
iiuk3
2018-08-27 18:10:29
Mybatis單張數據表CRUD操作
Rxk17805428997
2018-08-27 17:27:24
Mybatis多表連接查詢
Rxk17805428997
2018-08-27 17:27:19
Mybatis簡介及配置
Rxk17805428997
2018-08-27 17:27:19
Mybatis 通配符# 以及 $的使用
Coder_Hunter
2018-08-27 17:12:12
關於sqlsession的疑惑?
wangjie0925
2018-08-27 16:55:05