(145條消息) 【2022最新版】MyBatis面試題總結(jié)(38道題含答案解析)_mybatis面試題2022_程序媛小琬的博客-博客
10年積累的
成都做網(wǎng)站、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先
網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有
壽寧免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
(145條消息) MyBatis-Plus分頁(yè)插件Page原理分析_酷愛(ài)編程的小猿同學(xué)的博客-博客_mybatisplus分頁(yè)插件原理
文件的存儲(chǔ)、數(shù)據(jù)的讀取? ?等都是? ? 數(shù)據(jù)持久化操作;
對(duì)表數(shù)據(jù)進(jìn)行增刪改查? ? ? 的操作? 就是數(shù)據(jù)持久化;
Mybatis高頻面試題總結(jié)(2022最新) - 知乎 (zhihu.com)
Mybatis 是如何進(jìn)行分頁(yè)的?
Mybatis 使用 RowBounds 對(duì)象進(jìn)行分頁(yè),它是針對(duì) ResultSet 結(jié)果集執(zhí)行的內(nèi)存分頁(yè),而非物理分頁(yè),先把數(shù)據(jù)都查出來(lái),然后再做分頁(yè)。
可以在 sql 內(nèi)直接書(shū)寫(xiě)帶有物理分頁(yè)的參數(shù)來(lái)完成物理分頁(yè)功能,也可以使用分頁(yè)插件來(lái)完成物理分頁(yè)。
(145條消息) Mybatis3 緩存收回策略(eviction)_清_澈的博客-博客_mybatis eviction
二級(jí)緩存
緩存的數(shù)據(jù)結(jié)構(gòu):
Mybatis的緩存實(shí)際上就是一個(gè)HashMap,key是真正執(zhí)行的sql語(yǔ)句,value是緩存的結(jié)果。
- MyBatis在多表查詢(xún)時(shí),極大可能會(huì)出現(xiàn)臟數(shù)據(jù),有設(shè)計(jì)上的缺陷,安全使用二級(jí)緩存的條件比較苛刻。
- 在分布式環(huán)境下,由于默認(rèn)的MyBatis Cache實(shí)現(xiàn)都是基于本地的,分布式環(huán)境下必然會(huì)出現(xiàn)讀取到臟數(shù)據(jù),需要使用集中式緩存將MyBatis的Cache接口實(shí)現(xiàn),有一定的開(kāi)發(fā)成本,直接使用Redis、Memcached等分布式緩存可能成本更低,安全性也更高。
Mybatis框架簡(jiǎn)介
- MyBatis框架是一個(gè)開(kāi)源的? ? 數(shù)據(jù)持久層框架。
- 它的內(nèi)部? ?封裝了? ?通過(guò)JDBC訪問(wèn)數(shù)據(jù)庫(kù)的操作,支持普通的SQL查詢(xún)、存儲(chǔ)過(guò)程和高級(jí)映射,幾乎消除了所有的JDBC代碼和參數(shù)的手工設(shè)置以及結(jié)果集的檢索。
- MyBatis作為持久層框架,其主要思想是將程序中的大量SQL語(yǔ)句剝離出來(lái),配置在配置文件當(dāng)中,實(shí)現(xiàn)SQL的靈活配置。
- 這樣做的好處是將SQL與程序代碼分離,可以在不修改代碼的情況下,直接在配置文件當(dāng)中修改SQL。
什么是ORM?
- ORM(Object/Relational Mapping)即對(duì)象關(guān)系映射,是一種? ?數(shù)據(jù)持久化技術(shù)。
- 它在對(duì)象模型? 和? 關(guān)系型數(shù)據(jù)庫(kù)? 建立? 對(duì)應(yīng)關(guān)系,并且提供一種機(jī)制,
- 通過(guò)JavaBean對(duì)象? 操作? 數(shù)據(jù)庫(kù)表的數(shù)據(jù)。 MyBatis通過(guò)簡(jiǎn)單的XML或者注解的方式進(jìn)行配置和原始映射,將實(shí)體類(lèi)和SQL語(yǔ)句之間建立映射關(guān)系,是一種半自動(dòng)(之所以說(shuō)是半自動(dòng),因?yàn)槲覀円约簩?xiě)SQL)的ORM實(shí)現(xiàn)。
Mybatis動(dòng)態(tài)sql有什么用?執(zhí)行原理?有哪些動(dòng)態(tài)sql?
- Mybatis動(dòng)態(tài)sql可以在Xml映射文件內(nèi),以標(biāo)簽的形式編寫(xiě)動(dòng)態(tài)sql,執(zhí)行原理是根據(jù)表達(dá)式的值完成邏輯判斷并動(dòng)態(tài)拼接sql的功能。
#{}和${}的區(qū)別是什么?
#{}
是預(yù)編譯處理? 占位,${}
是字符串替換? 拼接。- Mybatis在處理
#{}
時(shí),會(huì)將sql中的#{}
替換為?號(hào),調(diào)用PreparedStatement的set方法來(lái)賦值; - Mybatis在處理
${}
時(shí),就是把${}
替換成變量的值。 - 使用
#{}
可以有效的防止SQL注入,提高系統(tǒng)安全性。 - 簡(jiǎn)單說(shuō),#{}是經(jīng)過(guò)預(yù)編譯的,是安全的;${}是未經(jīng)過(guò)預(yù)編譯的,僅僅是取變量的值,是非安全的,存在SQL注入。
當(dāng)實(shí)體類(lèi)中的屬性名? 和? ?表中的字段名不一樣,怎么辦?
- 第1種: 通過(guò)在查詢(xún)的sql語(yǔ)句中定義字段名的別名,讓字段名的別名和實(shí)體類(lèi)的屬性名一致。
- 第2種: 通過(guò) `` 來(lái)映射字段名和實(shí)體類(lèi)屬性名的一一對(duì)應(yīng)的關(guān)系。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱(chēng):mybatis框架-創(chuàng)新互聯(lián)
URL標(biāo)題:
http://weahome.cn/article/ecojo.html