1. 程式人生 > 其它 >Mybatis相關面試題

Mybatis相關面試題

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注入,提高系統安全性;

${}是字串替換,處理${}時,會替換成變數的值