[英]How is spring-data-jdbc complimenting MyBatis?
我想了解為什么 spring-data-jdbc 提供與 MyBatis 的集成。
簡而言之, spring-data-jdbc
為提供 JDBC API 的存儲提供了域驅動設計存儲庫實現。 它試圖在概念上非常簡單(尤其是將它與 JPA 進行比較時)。 並且在某種意義上與 mybatis 類似,它不會嘗試引入隱藏 ORM 復雜性的抽象。
這是spring-data-jdbc
文檔中的引用:
- 如果加載實體,則會執行 SQL 語句。 完成此操作后,您將擁有一個完全加載的實體。 沒有進行延遲加載或緩存。
- 如果您保存一個實體,它將被保存。 如果您不這樣做,則不會。 沒有臟跟蹤,也沒有會話。
- 有一個關於如何將實體映射到表的簡單模型。 它可能只適用於相當簡單的情況。 如果您不喜歡那樣,您應該編寫自己的策略。 Spring Data JDBC 對使用注解自定義策略提供的支持非常有限。
spring-data-jdbc
可以不用mybatis。 這些查詢要么是由spring-data-jdbc
本身實現的 CRUD 查詢,要么是使用@Query
注釋指定的自定義查詢。
它確實提供了與 mybatis 的集成,這允許使用第三種方式來指定查詢,即使用具有 mybatis 中所有可用功能的 mybatis 映射器。 這允許創建更復雜的映射,同時仍然使用基於存儲庫方法名稱的自動查詢生成來進行簡單查詢。
有時,即使是簡單的 CRUD 操作也需要創建 SQL 查詢,這被視為 mybatis 中的一個限制或問題。 spring-data-jdbc
允許通過向應用程序引入額外的抽象層(存儲庫)來解決這個問題。 我說additional
因為可以使用 mybatis mapper 作為 DDD 存儲庫。
確實,如果應用程序有很多 CRUD 操作,將會引入和使用很多非常相似的代碼或一些解決方案來制作類似於https://github.com/rickcr/mybatis-generic-crud 的通用 CRUD。
spring-data-jdbc
允許以相當低的價格優雅地解決這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.