下面要給大家分享的是mybatis緩存面試題,那么一般mybatis面試題都有哪些內容呢?有哪些面試題是經常會問到的?下面一起來看看吧。
面試題
1、mybatis是什么?
答案:mybatis是一個半ORM框架,內部封裝了JDBC,開發(fā)的時候,只要關注SQL語句/java/post/854.html本身,不要花費多余的精力去處理加載驅動、創(chuàng)建連接、創(chuàng)建statement等過程。
直接編寫原生態(tài)sql,能夠嚴格控制sql執(zhí)行性能,靈活度高。
關于mybatis是什么的內容,大家可以通過以下的文章來進行更加詳細的了解-mybatis原理都有哪些?mybatis是什么?
2、mybatis的優(yōu)點有哪些?MyBatis框架的缺點有哪些?
答案:優(yōu)點:基于SQL語句編程,非常的靈活,不會對應用程序或者是數(shù)據(jù)庫的現(xiàn)有設計造成影響,SQL寫在XML里面,解除sql和程序代碼的耦合,有助于統(tǒng)一管理;提供XML標簽,支持編寫動態(tài)SQL語句,并可重用;和JDBC比較起來,減少了50%以上的代碼量,消除了JDBC大量冗余的代碼,不需要去手動開關連接;可以很好的和各種數(shù)據(jù)庫兼容;可以很好的和Spring集成;提供映射標簽,支持對象和數(shù)據(jù)庫的ORM字段關系映射;提供對象關系映射標簽,支持對象關系組件維護。
缺點:編寫工作量大,SQL語句依賴于數(shù)據(jù)庫,數(shù)據(jù)庫移植性差,不可以隨意的去更換數(shù)據(jù)庫。
推薦閱讀:mybatis優(yōu)缺點是什么?有哪些優(yōu)點和缺點?
3、MyBatis和Hibernate的區(qū)別有哪些?
答案:不完全是一個ORM框架;Mybatis直接編寫原生態(tài)sql,能夠嚴格控制sql執(zhí)行性能,靈活度高,但是,假如要實現(xiàn)支持多種數(shù)據(jù)庫的軟件,那么就要自定義多套sql映射文件,工作量比較大;Hibernate對象和關系映射能力強,數(shù)據(jù)庫無關性好,對于關系模型要求高的軟件,假如要用hibernate開發(fā),能夠節(jié)省很多的代碼,提高效率。
4、#{}和${}的有什么區(qū)別?
答案:#{}是預編譯處理,${}是字符串替換;Mybatis在處理#{}的時候,會把sql當中的#{}替換成為?號,調用PreparedStatement的set方法來賦值;Mybatis在處理${}的時候,會將${}替換成變量的值;使用#{}能夠有效的防止SQL注入,提高系統(tǒng)安全性。
推薦閱讀:mybatis中$#的區(qū)別是什么?有什么區(qū)別?
5、怎樣批量插入?
創(chuàng)建一個insert語句
<insert id=”insertname”> 2 insert into names (name) values (#{value}) 3 </insert>
在java代碼中執(zhí)行批處理插入
list < string > names = new arraylist(); names.add(“fred”); names.add(“barney”); names.add(“betty”); names.add(“wilma”); // 注意這里 executortype.batch sqlsession sqlsession = sqlsessionfactory.opensession(executortype.batch); try { namemapper mapper = sqlsession.getmapper(namemapper.class); for (string name: names) { mapper.insertname(name); } sqlsession.commit(); } catch (Exception e) { e.printStackTrace(); sqlSession.rollback(); throw e; } finally { sqlsession.close(); }
推薦閱讀:mybatis批量插入數(shù)據(jù)如何實現(xiàn)?實現(xiàn)方式有哪些?
6、mybatis動態(tài)sql有什么用?執(zhí)行原理是什么?有哪些動態(tài)sql?
答案:能夠在Xml映射文件當中,用標簽的形式編寫動態(tài)sql,執(zhí)行原理是根據(jù)表達式的值 完成邏輯判斷并動態(tài)拼接sql的功能;提供了九種動態(tài)sql標簽:trim | where | set | foreach | if | choose | when | otherwise | bind。
7、ybatis是半自動ORM映射工具為什么要這樣說?和全自動的區(qū)別是什么?
答案:Hibernate屬于全自動ORM映射工具,使用Hibernate查詢關聯(lián)對象或者是關聯(lián)集合對象的時候,能夠依據(jù)對象關系模型直接獲取,所以說,它是全自動的;而Mybatis在查詢關聯(lián)對象或關聯(lián)集合對象的時候,則要手動編寫sql來完成,所以,就叫做半自動ORM映射工具。
mybatis面試題就暫時給大家分享到這里了,還想了解更多的面試題,可以繼續(xù)通過賦能網(wǎng)的面試題欄目來了解。
本文鏈接:
本文章“mybati緩存機制面試都問些什么mybati緩存面試題及答案整理!”已幫助 69 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產權侵權的法律責任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579