MyBatis 與 Hibernate 有哪些不同?

G_whang發表於2020-10-15

MyBatis 框架適用場合:
1、MyBatis 專注於 SQL 本身,是一個足夠靈活的 DAO 層解決方案。
2、對效能的要求高,或者需求變化較多的專案,MyBatis 將是不錯的選擇。
MyBatis 與 Hibernate 有哪些不同?
1、Mybatis 和 hibernate 不同,它不完全是一個 ORM 框架,因為 MyBatis 需要程式設計師自己編寫 Sql 語句。
2、Mybatis 直接編寫原生態 sql,可以嚴格控制 sql 執行效能,靈活度高,非常適合對關係資料模型要求不高的軟體開發,因為這類軟體需求變化頻繁,一但需求變化要求迅速輸出成果。但是靈活的前提是 mybatis 無法做到資料庫無關性,如果需要實現支援多種資料庫的軟體,則需要自定義多套 sql 對映檔案,工作量大。
3、Hibernate 物件/關係對映能力強,資料庫無關性好,對於關係模型要求高的軟體,如果用 hibernate 開發可以節省很多程式碼,提高效率。
#{}和美元{}的區別是什麼?
#{}是預編譯處理,美元{}是字串替換。
Mybatis 在處理#{}時,會將 sql 中的#{}替換為?號,呼叫 PreparedStatement 的set 方法來賦值;
Mybatis 在處理美元{}時,就是把美元{}替換成變數的值。
使用#{}可以有效的防止 SQL 注入,提高系統安全性。

相關文章