在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    面試有點(diǎn)慌?來看看18個(gè)MyBatis高頻知識及學(xué)習(xí)筆記

    面試有點(diǎn)慌?來看看18個(gè)MyBatis高頻知識及學(xué)習(xí)筆記

    什么是MyBatis

    MyBatis 本是apache的一個(gè)開源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis。是一個(gè)基于Java的持久層框架

    下面是精心整理的18個(gè)MyBatis高頻知識及學(xué)習(xí)筆記,不管處不處在面試階段的朋友都可以領(lǐng)取保存,以備不時(shí)之需

    01 18個(gè)MyBatis高頻知識點(diǎn)(含解析)

  • 精講#{}和${}的區(qū)別是什么?
  • 數(shù)據(jù)庫鏈接中斷如何處理?
  • 在開發(fā)過程中,經(jīng)常遇到插入重復(fù)的現(xiàn)象,這種情況該如何解決呢?
  • 事務(wù)執(zhí)行過程中宕機(jī)的應(yīng)對處理方式?
  • 高性能服務(wù)器端端開發(fā)底層主要靠I/O復(fù)用來處理,這種模式:
  • Mybatis中的Dao接口和XML文件里的SQL是如何建立關(guān)系的?
  • 當(dāng)實(shí)體類中的屬性名和表中的字段名不一樣,怎么辦 ?
  • 模糊查詢like語句該怎么寫?
  • 什么是MyBatis的接口綁定?有哪些實(shí)現(xiàn)方式?
  • 使用MyBatis的mapper接口調(diào)用時(shí)要注意的事項(xiàng)
  • 通常一個(gè)Xml映射文件,都會寫一個(gè)Dao接口與之對應(yīng),請問,這個(gè)Dao接口的工作原理是什么?Dao接口里的方法,參數(shù)不同時(shí),方法能重載嗎?
  • Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重復(fù)?
  • Mybatis的一級、二級緩存的作用是什么?
  • Mybatis 是如何進(jìn)行分頁的?分頁插件的原理是什么?
  • Mybatis 動態(tài) SQL 是做什么的?都有哪些動態(tài) SQL ?能簡述一下動態(tài) SQL 的執(zhí)行原理嗎?
  • Mybatis是否支持延遲加載?如果支持,它的實(shí)現(xiàn)原理是什么?
  • Mybatis都有哪些Executor執(zhí)行器?它們之間的區(qū)別是什么?
  • MyBatis與Hibernate區(qū)別?
  • 1 精講#{}和${}的區(qū)別是什么?

    • mybatis在處理#{}時(shí),會將sql中的#{}替換為?號,調(diào)用PreparedStatement的set方法來賦值。
    • mybatis在處理時(shí),就是把{}時(shí),就是把時(shí),就是把{}替換成變量的值。
    • 使用#{}可以有效的防止SQL注入,提高系統(tǒng)安全性。原因在于:預(yù)編譯機(jī)制。預(yù)編譯完成之后,SQL的結(jié)構(gòu)已經(jīng)固定,即便用戶輸入非法參數(shù),也不會對SQL的結(jié)構(gòu)產(chǎn)生影響,從而避免了潛在的安全風(fēng)險(xiǎn)。
    • 預(yù)編譯是提前對SQL語句進(jìn)行預(yù)編譯,而其后注入的參數(shù)將不會再進(jìn)行SQL編譯。我們知道,SQL注入是發(fā)生在編譯的過程中,因?yàn)閻阂庾⑷肓四承┨厥庾址詈蟊痪幾g成了惡意的執(zhí)行操作。而預(yù)編譯機(jī)制則可以很好的防止SQL注入。

    既然{}會引起sql注入,為什么有了#{}還需要有{}呢?那其存在的意義是什么?#{}主要用于預(yù)編譯,而預(yù)編譯的場景其實(shí)非常受限,而${}用于替換,很多場景會出現(xiàn)替換,而這種場景可不是預(yù)編譯2 數(shù)據(jù)庫鏈接中斷如何處理?數(shù)據(jù)庫的訪問底層是通過tcp實(shí)現(xiàn)的,當(dāng)鏈接中斷是程序是無法得知,導(dǎo)致程序一直會停頓一段時(shí)間在這,最終會導(dǎo)致用戶體驗(yàn)不好,因此面對數(shù)據(jù)庫連接中斷的異常,該怎么設(shè)置mybatis呢?connection操作底層是一個(gè)循環(huán)處理操作,因此可以進(jìn)行時(shí)間有關(guān)的參數(shù):

    • max_idle_time : 表明最大的空閑時(shí)間,超過這個(gè)時(shí)間socket就會關(guān)閉
    • connect_timeout : 表明鏈接的超時(shí)時(shí)間

    數(shù)據(jù)庫服務(wù)器活的杠杠的,但是因?yàn)榫W(wǎng)絡(luò)用塞,客戶端仍然連不上服務(wù)器端,這個(gè)時(shí)候就要設(shè)置timeout,別一直傻等著3 在開發(fā)過程中,經(jīng)常遇到插入重復(fù)的現(xiàn)象,這種情況該如何解決呢?插入的過程一般都是分兩步的:先判斷是否存在記錄,沒有存在則插入否則不插入。如果存在并發(fā)操作,那么同時(shí)進(jìn)行了第一步,然后大家都發(fā)現(xiàn)沒有記錄,然后都插入了數(shù)據(jù)從而造成數(shù)據(jù)的重復(fù)解決插入重復(fù)的思路 :

    • 先判斷數(shù)據(jù)庫是否存在數(shù)據(jù),有的話則不進(jìn)行任何操作。沒有數(shù)據(jù)的話,進(jìn)行下一步;
    • 向redis set key,其中只有一個(gè)插入操作A會成功,其他并發(fā)的操作(B和C…)都會失敗的 ;
    • 當(dāng)set key 成功的操作A,開始執(zhí)行插入數(shù)據(jù)操作,無論是否插入數(shù)據(jù)成功,都在需要將redis key刪除?!咀ⅰ坎迦氩怀晒梢远鄧L試幾次,增加成功的概率 ;
    • 然而set key 失敗的操作B和C,sleep一下,競爭贏的插入操作重復(fù)以上步驟。

    總結(jié):多線程同時(shí)插入數(shù)據(jù),誰獲取鎖并插入數(shù)據(jù)成功了其他線程不做任何操作。當(dāng)插入數(shù)據(jù)失敗后,其他線程搶鎖進(jìn)行插入數(shù)據(jù)。篇幅有限,完整版18個(gè)Mybatis高頻知識點(diǎn)如下所示:(需要下載完整版的朋友可以 私信 “學(xué)習(xí)” 免費(fèi)領(lǐng)取~~)

    18個(gè)Mybatis高頻知識點(diǎn)

    02 32道面試常見的MyBtis題目+解析

  • 什么是 MyBatis?講下 MyBatis 的緩存
  • Mybatis 是如何進(jìn)行分頁的?分頁插件的原理是什么?
  • 簡述 Mybatis 的插件運(yùn)行原理,以及如何編寫一個(gè)插件?
  • Mybatis 動態(tài) sql 是做什么的?都有哪些動態(tài) sql?能簡述一下動態(tài) sql 的執(zhí)行原理不?
  • #{}和${}的區(qū)別是什么?
  • 為什么說 Mybatis 是半自動 ORM 映射工具?它與全自動的區(qū)別在哪里?
  • Mybatis 是否支持延遲加載?如果支持,它的實(shí)現(xiàn)原理是什么?
  • MyBatis 與 Hibernate 有哪些不同?
  • MyBatis 的好處是什么?
  • 簡述 Mybatis 的 Xml 映射文件和 Mybatis 內(nèi)部數(shù)據(jù)結(jié)構(gòu)之間的映射關(guān)系?
  • 什么是 MyBatis 的接口綁定,有什么好處?
  • 接口綁定有幾種實(shí)現(xiàn)方式,分別是怎么實(shí)現(xiàn)的?
  • 什么情況下用注解綁定,什么情況下用 xml 綁定?
  • MyBatis 實(shí)現(xiàn)一對一有幾種方式?具體怎么操作的?
  • Mybatis 能執(zhí)行一對一、一對多的關(guān)聯(lián)查詢嗎?都有哪些實(shí)現(xiàn)方式,以及它們之間的區(qū)別?
  • MyBatis 里面的動態(tài) Sql 是怎么設(shè)定的?用什么語法?
  • Mybatis 是如何將 sql 執(zhí)行結(jié)果封裝為目標(biāo)對象并返回的?都有哪些映射形式?
  • Xml 映射文件中,除了常見的 select|insert|updae|delete 標(biāo)簽之外,還有哪些標(biāo)簽?
  • 當(dāng)實(shí)體類中的屬性名和表中的字段名不一樣,如果將查詢的結(jié)果封裝到指定 pojo?
  • 通常一個(gè) Xml 映射文件,都會寫一個(gè) Dao 接口與之對應(yīng), Dao 的工作原理,是否可以重載?
  • Mybatis 映射文件中,如果 A 標(biāo)簽通過 include 引用了 B 標(biāo)簽的內(nèi)容,請問,B 標(biāo)簽?zāi)芊穸x在 A 標(biāo)簽的后面,還是說必須定義在 A 標(biāo)簽的前面?
  • Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重復(fù)?
  • Mybatis 都有哪些 Executor 執(zhí)行器?它們之間的區(qū)別是什么?
  • Mybatis 中如何指定使用哪一種 Executor 執(zhí)行器?
  • Mybatis 執(zhí)行批量插入,能返回?cái)?shù)據(jù)庫主鍵列表嗎?
  • Mybatis 是否可以映射 Enum 枚舉類?
  • 如何獲取自動生成的(主)鍵值?
  • 在 mapper 中如何傳遞多個(gè)參數(shù)?
  • resultType resultMap 的區(qū)別?
  • 使用 MyBatis 的 mapper 接口調(diào)用時(shí)有哪些要求?
  • Mybatis 比 IBatis 比較大的幾個(gè)改進(jìn)是什么?
  • IBatis 和 MyBatis 在核心處理類分別叫什么?在細(xì)節(jié)上的不同有哪些?
  • 1 什么是 MyBatis?答:MyBatis 是一個(gè)可以自定義 SQL、存儲過程和高級映射的持久層框架。2 講下 MyBatis 的緩存答:MyBatis 的緩存分為一級緩存和二級緩存,一級緩存放在 session 里面,默認(rèn)就有,二級緩存放在它的命名空間里,默認(rèn)是不打開的,使用二級緩存屬性類需要實(shí)現(xiàn) Serializable 序列化接口(可用來保存對象的狀態(tài)),可在它的映射文件中配置3 Mybatis 是如何進(jìn)行分頁的?分頁插件的原理是什么?答:1)Mybatis 使用 RowBounds 對象進(jìn)行分頁,也可以直接編寫 sql 實(shí)現(xiàn)分頁,也可以使用Mybatis 的分頁插件。2)分頁插件的原理:實(shí)現(xiàn) Mybatis 提供的接口,實(shí)現(xiàn)自定義插件,在插件的攔截方法內(nèi)攔截待執(zhí)行的 sql,然后重寫 sql。舉例:select * from student,攔截 sql 后重寫為:select t.* from (select * from student)tlimit 0,104 簡述 Mybatis 的插件運(yùn)行原理,以及如何編寫一個(gè)插件?答:1)Mybatis 僅可以編寫針對 ParameterHandler、ResultSetHandler、StatementHandler、Executor 這 4 種接口的插件,Mybatis 通過動態(tài)代理,為需要攔截的接口生成代理對象以實(shí)現(xiàn)接口方法攔截功能,每當(dāng)執(zhí)行這 4 種接口對象的方法時(shí),就會進(jìn)入攔截方法,具體就是InvocationHandler 的 invoke()方法,當(dāng)然,只會攔截那些你指定需要攔截的方法。2)實(shí)現(xiàn) Mybatis 的 Interceptor 接口并復(fù)寫 intercept()方法,然后在給插件編寫注解,指定要攔截哪一個(gè)接口的哪些方法即可,記住,別忘了在配置文件中配置你編寫的插件。

    篇幅有限,完整版32道面試常見的Mybatis題目+解析如下所示:

    32道面試常見的Mybatis題目+解析

    03 MyBatis技術(shù)內(nèi)幕(書籍PDF)

  • 第1章 MyBatis快速入門
  • 第2章 基礎(chǔ)支持層
  • 第3章 核心處理層
  • 第4章 高級主題
  • MyBatis技術(shù)內(nèi)幕(書籍PDF)

    最后分享一波需要文中分享的那些MyBatis全部學(xué)習(xí)資料的朋友注意啦,轉(zhuǎn)發(fā)+私信 “學(xué)習(xí)”即可免費(fèi)領(lǐng)?。。?!好啦,既然這次談到了Mybatis,那么順便這里在給大家分享一下 【SSM框架】的 技術(shù)圖譜 以及 學(xué)習(xí)資料

    SSM框架技術(shù)圖譜

    SSM框架學(xué)習(xí)筆記

    最后說一次,需要MyBatis以及整個(gè)SSM框架的全部學(xué)習(xí)資料的,轉(zhuǎn)發(fā)+轉(zhuǎn)發(fā)+轉(zhuǎn)發(fā)+私信 “學(xué)習(xí)” 即可免費(fèi)獲取哦~~

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    (0)
    用戶投稿
    上一篇 2022年7月10日 12:34
    下一篇 2022年7月10日 12:35

    相關(guān)推薦

    • 凈利潤微增、廣和通盈利承壓,車聯(lián)網(wǎng)將成為重要賽道

      文/楊劍勇 2022年上半年,廣和通營收同比增長32.71%為24.18億元,與營收穩(wěn)健增長不同的是,凈利潤微增0.56%為2.04億元,與去年同期基本持平。作為一家物聯(lián)網(wǎng)公司,產(chǎn)…

      2022年8月12日
    • 每天分享一條Mac小技巧,趕快收藏起來吧

      剛用蘋果電腦,你得先改了這兩個(gè)windows帶過來的習(xí)慣 ①雙擊打開文件 特別是圖片文件,很多時(shí)候我們只是看一眼是什么,就需要關(guān)閉去做其它事情了。蘋果的“快速預(yù)覽”就很方便,選中文…

      2022年6月29日
    • 淘寶五星好評忘記截圖(淘寶怎么看自己的評價(jià))

      隨著電子商務(wù)的高速發(fā)展,淘寶作為亞洲最大的網(wǎng)上交易平臺也開始被更多的人使用,但是對于我們買家來說,淘寶店鋪良莠不齊,保不準(zhǔn)什么時(shí)候就會買到假貨。同時(shí)因?yàn)樘詫氶_店的門檻也放得比較低,…

      2022年11月8日
    • 20個(gè)頂級 Git 命令示例

      現(xiàn)在您(可能)已經(jīng)知道了 Git 是什么以及它是如何工作的,接下來看看如何使用前20個(gè) Git 命令的示例 在前面的博客中,您了解了什么是 git。在這個(gè)博客中,我將介紹在使用 G…

      2022年6月20日
    • 熱水器離洗澡間水管很長,每次洗澡都要浪費(fèi)一些冷水,有沒有好的方法解決這一問題?

      看描述,樓主家使用的應(yīng)該是傳統(tǒng)燃?xì)鉄崴鳎惭b地點(diǎn)(一般是廚房)離衛(wèi)生間又有一段距離,冷水段是不可避免的。 要消除冷水段,有兩個(gè)方式可供選擇,需要根據(jù)樓主家庭的實(shí)際熱水使用情況均衡…

      2022年7月26日
    • 蔡進(jìn):食品行業(yè)可挖掘空間大

      來源:經(jīng)濟(jì)參考報(bào) “穩(wěn)增長、擴(kuò)內(nèi)需仍是經(jīng)濟(jì)可持續(xù)發(fā)展的重要戰(zhàn)略方針?!比涨?,中國物流與采購聯(lián)合會副會長蔡進(jìn)在2022SIAL世界食品產(chǎn)業(yè)峰會上表示,擴(kuò)內(nèi)需是穩(wěn)增長的根本,是穩(wěn)增長的…

      2022年8月3日
    • 測不準(zhǔn)原理讓測量更精準(zhǔn)

      撰文:本·布魯貝克(Ben Brubaker) 翻譯:趙劍琳 在1927年以前,對測量精度的唯一限制似乎只有人類的智力水平。但后來,維爾納·海森堡(WernerHeisenberg…

      2022年7月10日
    • Epic出新游戲了《Rumbleverse》中文名摔角城大亂斗

      這是我玩了幾局之后的感受和一些操作方面的介紹,一款像堡壘之夜的畫風(fēng),是一個(gè)40人大亂斗的吃雞免費(fèi)游戲,很像外國版的永劫無間但是操作會比較簡單易懂。 玩家需要在落地之后打碎箱子獲得技…

      2022年8月14日
    • 《小森靈》游戲攻略

      近期沁沁在玩一款十分有趣的休閑益智類手機(jī)游戲,游戲采用經(jīng)典卡通的游戲畫風(fēng)進(jìn)行打造,在這里玩家不僅能夠感受各種全新的游戲玩法,還能夠進(jìn)行動物圖鑒的收集。所以近期小編會一直給大家整理小…

      2022年6月27日
    • 巔峰數(shù)據(jù)周報(bào),后羿勝率繼續(xù)領(lǐng)跑,花木蘭、蒙恬雙雙隕落

      7月29號版本更新,后羿、宮本武藏、司空震、花木蘭和蒙恬五名英雄進(jìn)行了強(qiáng)度調(diào)整。 調(diào)整后最新的巔峰賽勝率已經(jīng)出爐,接下來讓我們一起通過數(shù)據(jù)變化,來看看這五位英雄的強(qiáng)度情況。 一、宮…

      2022年7月31日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息