今天就來認識一下使用 Spring Boot 的時候可能會碰到的三種資料存取框架 Spring Data JPA、JDBC Template 和 MyBatis ,他們都各有其特色和適合的應用場景,當你需要碰到資料庫的處理,肯定需要來了解一下。
特性 | JPA | JDBC Template | MyBatis |
---|---|---|---|
SQL 控制 | 低(自動生成) | 高(手動撰寫) | 高(手動撰寫) |
資料庫操作簡易度 | 高(自動化映射與操作) | 中(簡化資源管理與操作) | 中(映射支援,但 SQL 需自行處理) |
ORM 支援 | 完整支援 | 無(需要手動處理) | 半自動化(SQL 自訂,結果自動映射) |
複雜查詢 | 一般(使用 JPQL,靈活性有限) | 高(完全自訂 SQL) | 高(動態 SQL 支援) |
學習曲線 | 中(需理解 ORM 概念) | 低(適合熟悉 SQL 的開發者) | 中(需學習 XML 或註解配置) |
效能 | 中(依賴 ORM 實現) | 高(手動優化 SQL) | 高(可完全控制 SQL) |
目前我工作上有碰過的就是 JPA 和 MyBatis 這兩種,自己使用的心得會覺得,如果資料庫簡單,多半都是進行比較單純的 CRUD 操作時,因為物件關係明確時,JPA 會比較方便去操作,像是自己做一些小專案可以很快地建立起操作資料的連結或;當資料庫比較複雜需要較多 SQL 操作,並且對 SQL 熟悉,有高度掌控需求時,MyBatis 會更適合,JDBC 雖然我沒用過,但看過一些用法也是著重原生 SQL 的特性,所以也會比較接近 MyBatis 的應用場景。
Ref:
相關文章也會同步更新我的部落格,有興趣也可以在裡面找其他的技術分享跟資訊。