黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 職業(yè)指南 總結(jié)比較全面的mybatis常見(jiàn)面試題

總結(jié)比較全面的mybatis常見(jiàn)面試題

更新時(shí)間:2022-12-19 16:06:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1549次

MyBatis是一個(gè)半ORM(對(duì)象關(guān)系映射)框架,它內(nèi)部封裝了JDBC,開(kāi)發(fā)時(shí)只需要關(guān)注SQL語(yǔ)句本身,不需要花費(fèi)精力去加載驅(qū)動(dòng)、創(chuàng)建連接、創(chuàng)建Statement等繁雜過(guò)程。程序員直接編寫(xiě)原生態(tài)sql,可以嚴(yán)格控制sql執(zhí)行性能,靈活度高。所以MyBatis是我們?cè)诿嬖嚂r(shí)需要準(zhǔn)備的:

mybatis常見(jiàn)面試題

1、#{}和${}的區(qū)別是什么?

${}是字符串替換,相當(dāng)于直接顯示數(shù)據(jù),#{}是預(yù)編譯處理,相當(dāng)于對(duì)數(shù)據(jù)加上雙引號(hào)

即#是將傳入的值當(dāng)做字符串的形式,先替換為?號(hào),然后調(diào)用PreparedStatement的set方法來(lái)賦值,而$是將傳入的數(shù)據(jù)直接顯示生成sql語(yǔ)句

--Mybatis在處理#{}時(shí)
select id,name,age from student where id =#{id}
當(dāng)前端把id值1傳入到后臺(tái)的時(shí)候,就相當(dāng)于:
select id,name,age from student where id ='1'
 
--Mybatis在處理${}時(shí)
select id,name,age from student where id =${id}
當(dāng)前端把id值1傳入到后臺(tái)的時(shí)候,就相當(dāng)于:
select id,name,age from student where id = 1

PS:使用#{}可以有效的防止SQL注入,提高系統(tǒng)安全性(語(yǔ)句的拼接),如果使用在order by 中就需要使用 ${}。

最大區(qū)別在于:#{} 傳入值時(shí),sql解析參數(shù)是帶引號(hào)的,而${}傳入值時(shí),sql解析參數(shù)是不帶引號(hào)的。

2、如何理解Mybatis?(Mybatis是什么)

Mybatis內(nèi)部封裝了jdbc,開(kāi)發(fā)者只需要關(guān)注sql語(yǔ)句本身,而不需要花費(fèi)精力去處理加載驅(qū)動(dòng)、創(chuàng)建連接、創(chuàng)建statement等繁雜的過(guò)程。

mybatis通過(guò)xml或注解的方式將要執(zhí)行的各種statement配置起來(lái),并通過(guò)java對(duì)象和statement中sql的動(dòng)態(tài)參數(shù)進(jìn)行映射生成最終執(zhí)行的sql語(yǔ)句,最后由mybatis框架執(zhí)行sql并將結(jié)果映射為java對(duì)象并返回。

(3)MyBatis 支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis 避免了幾乎所有的 JDBC 代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集。MyBatis 可以使用簡(jiǎn)單的 XML 或注解來(lái)配置和映射原生信息,將接口和 Java 的 POJO映射成數(shù)據(jù)庫(kù)中的記錄。

3、Mybatis 中一級(jí)緩存與二級(jí)緩存的區(qū)別?

緩存:合理使用緩存是優(yōu)化中最常見(jiàn)的方法之一,將從數(shù)據(jù)庫(kù)中查詢(xún)出來(lái)的數(shù)據(jù)放入緩存中,下次使用時(shí)不必從數(shù)據(jù)庫(kù)查詢(xún),而是直接從緩存中讀取,避免頻繁操作數(shù)據(jù)庫(kù),減輕數(shù)據(jù)庫(kù)的壓力,同時(shí)提高系統(tǒng)性能。

一級(jí)緩存是SqlSession級(jí)別的緩存:

Mybatis對(duì)緩存提供支持,但是在沒(méi)有配置的默認(rèn)情況下,它只開(kāi)啟一級(jí)緩存。一級(jí)緩存在操作數(shù)據(jù)庫(kù)時(shí)需要構(gòu)造sqlSession對(duì)象,在對(duì)象中有一個(gè)數(shù)據(jù)結(jié)構(gòu)用于存儲(chǔ)緩存數(shù)據(jù)。不同的sqlSession之間的緩存數(shù)據(jù)區(qū)域是互相不影響的。也就是他只能作用在同一個(gè)sqlSession中,不同的sqlSession中的緩存是互相不能讀取的。

二級(jí)緩存是mapper級(jí)別的緩存:

MyBatis的二級(jí)緩存是mapper級(jí)別的緩存,它可以提高對(duì)數(shù)據(jù)庫(kù)查詢(xún)的效率,以提高應(yīng)用的性能。多個(gè)SqlSession去操作同一個(gè)Mapper的sql語(yǔ)句,多個(gè)SqlSession可以共用二級(jí)緩存,二級(jí)緩存是跨SqlSession的。

開(kāi)啟二級(jí)緩存:

A.mybatis.xml配置文件中加入:

<span style="font-size:18px;"><settings>    
   <!--開(kāi)啟二級(jí)緩存-->    
    <setting name="cacheEnabled" value="true"/>    
</settings> </span>  

B.在需要開(kāi)啟二級(jí)緩存的mapper.xml中加入caceh標(biāo)簽

<span style="font-size:18px;"><cache/></span>  

C.讓使用二級(jí)緩存的POJO類(lèi)實(shí)現(xiàn)Serializable接口

<span style="font-size:18px;">public class User implements Serializable {}</span>  

4、使用 MyBatis 的 mapper 接口調(diào)用時(shí)有哪些要求?

A. Mapper 接口方法名和 mapper.xml 中定義的每個(gè) sql 的 id 相同

B. Mapper 接口方法的輸入?yún)?shù)類(lèi)型和 mapper.xml 中定義的每個(gè) sql 的 parameterType 的類(lèi)型相同

C. Mapper 接口方法的輸出參數(shù)類(lèi)型和 mapper.xml 中定義的每個(gè) sql 的 resultType 的類(lèi)型相同

D. Mapper.xml 文件中的 namespace 即是 mapper 接口的類(lèi)路徑

(平常用會(huì)用,但是面試時(shí),會(huì)想不起來(lái),這個(gè)常考)

5、簡(jiǎn)述一下Mybatis 的編程步驟

A.創(chuàng)建 SqlSessionFactory

B.通過(guò) SqlSessionFactory 創(chuàng)建 SqlSession

C.通過(guò) sqlsession 執(zhí)行數(shù)據(jù)庫(kù)操作

D.調(diào)用 session.commit()提交事務(wù)

E.調(diào)用 session.close()關(guān)閉會(huì)話(huà)

6、MyBatis中接口綁定有幾種實(shí)現(xiàn)方式,是怎么實(shí)現(xiàn)的?

A.通過(guò)注解綁定,在接口的方法上面加上 @Select@Update等注解里面包含Sql語(yǔ)句來(lái)綁定(Sql語(yǔ)句比較簡(jiǎn)單的時(shí)候,推薦注解綁定)

B.通過(guò)xml里面寫(xiě)SQL來(lái)綁定, 指定xml映射文件里面的namespace必須為接口的全路徑名(SQL語(yǔ)句比較復(fù)雜的時(shí)候,推薦xml綁定)

以上就是“總結(jié)比較全面的mybatis常見(jiàn)面試題”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: www.亚洲一区二区三区 | 成年在线观看网站免费视频 | 3344a毛片在线看 | 国产v片在线播放免费观 | 在线观看成人影院 | 日韩不卡一区 | 亚洲视频999| 亚洲欧美国产精品专区久久 | 九九亚洲视频 | 日本xx网站 | 日本高清网站 | 欧美性高清video | 99热99操99射| 欧美视频中文字幕 | 久久视热这只是精品222 | 日日日操操操 | 国产精选在线播放 | 天天曰天天干 | 一本高清在线视频 | 鸥美一级黄色片 | 天天摸日日添狠狠添婷婷 | 久久精品免看国产 | 成人777777 | 福利片免费观看 | 亚洲 欧美 日韩 综合 | 五月天婷婷综合 | 欧美性高清视频免费看www | 天天网综合 | www.黄免费| 亚洲视频国产视频 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看精品 | 亚洲国产欧美日韩一区二区 | 男人香蕉好大好爽视频 | 一级毛片黄色 | 日本国产在线 | 国产精品国产三级在线专区 | 亚洲日本中文字幕一本 | 亚洲视频在线观看不卡 | 黄色福利网站 | 男人的午夜影院 | 激情文学综合丁香 |