歡迎來到培訓(xùn)無憂網(wǎng)!
咨詢熱線 400-001-5729
2021-11-27 11:41:40|已瀏覽:311次
一場(chǎng)Java面試會(huì)遇到很多技術(shù)問題,例如MyBatis技術(shù)。MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過程以及高級(jí)映射。下面,老師結(jié)合就業(yè)面試給大家大家介紹MyBatis相關(guān)問題及答案。
答:Mybatis動(dòng)態(tài)SQL可以讓我們?cè)赬ML映射文件內(nèi),以標(biāo)簽的形式編寫動(dòng)態(tài)SQL,完成邏輯判斷和動(dòng)態(tài)拼接SQL的功能,Mybatis提供了9種動(dòng)態(tài)SQL標(biāo)簽:trim|where|set|foreach|if|choose|when|otherwise|bind。
其執(zhí)行原理為,使用OGNL從SQL參數(shù)對(duì)象中計(jì)算表達(dá)式的值,根據(jù)表達(dá)式的值動(dòng)態(tài)拼接SQL,以此來完成動(dòng)態(tài)SQL的功能。
3、Mybatis是如何將SQL執(zhí)行結(jié)果封裝為目標(biāo)對(duì)象并返回的?都有哪些映射形式?答:第一種是使用標(biāo)簽,逐一定義列名和對(duì)象屬性名之間的映射關(guān)系。第二種是使用SQL列的別名功能,將列別名書寫為對(duì)象屬性名,比如T_NAME AS NAME,對(duì)象屬性名一般是name,小寫,但是列名不區(qū)分大小寫,Mybatis會(huì)忽略列名大小寫,智能找到與之對(duì)應(yīng)對(duì)象屬性名,你甚至可以寫成T_NAME AS NaMe,Mybatis一樣可以正常工作。有了列名與屬性名的映射關(guān)系后,Mybatis通過反射創(chuàng)建對(duì)象,同時(shí)使用反射給對(duì)象的屬性逐一賦值并返回,那些找不到映射關(guān)系的屬性,是無法完成賦值的。
本文由培訓(xùn)無憂網(wǎng)千鋒教育專屬課程顧問整理發(fā)布,更多Java培訓(xùn)課程資訊歡迎關(guān)注培訓(xùn)無憂網(wǎng)Java培訓(xùn)頻道或添加老師微信:1503333605010
注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://www.dedgn.cn/news-id-5197.html 違者必究!部分文章來源于網(wǎng)絡(luò)由培訓(xùn)無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注java培訓(xùn)頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050