Mybatis相關面試題
阿新 • • 發佈:2022-05-12
1、mybatis優缺點有哪些?
優點:
與JDBC相比,消除JDBC大量冗餘程式碼(載入驅動、建立連線、準備sql、準備Statement、處理結果、關閉連線),不需要手動開關連線。
與資料庫相容。(MyBatis使用JDBC連線資料庫)
較好整合Spring
sql寫在XML裡,從程式碼程式中解耦合,重用(ResultMap)
提供XML標間,支援編寫動態SQL語句
提供對映標籤,支援物件與資料庫的ORM欄位關係對映
缺點:
SQL語句編寫工作量大(欄位多、關聯表多)
SQL語句依賴資料庫,導致資料庫移植性差,不能隨意更換資料庫。
2、mybatis和hibernate有什麼區別?
相同點:
都是由XML配置檔案生成SessionFactory,然後由SessionFactory生成Session,最後由Session執行事務和SQL語句
都支援JDBC和JTA事物處理
不同點
hibernate全自動;mybatis半自動。Hibernate完全可以通過物件關係模型實現對資料庫的操作,完整的JavaBean物件對資料庫的對映結構來自動生成sql。而mybatis僅有基本的欄位對映,物件資料以及物件實際關係需要手寫sql來實現和管理。
hibernate資料庫移植性遠大於mybatis。hibernate的對映結構和hql語言降低物件與資料庫的耦合性
hibernate有完整的日誌系統,mybatis略差一些
hibernate配置複雜。
sql優化,mybatis更方便
快取機制,hibernate更好一些
3、mybatis中#{}和${}的區別是什麼?
#{}是預編譯,會將sql中#{}替換為?號,呼叫RreparedStatement的set方法來賦值,有效防止SQL注入,提高系統安全性;
${}是字串替換,處理${}時,會替換成變數的值