首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring-data-jdbc是如何补充MyBatis的?

spring-data-jdbc是如何补充MyBatis的?
EN

Stack Overflow用户
提问于 2019-05-23 10:46:53
回答 1查看 2.5K关注 0票数 6

我想了解为什么spring提供对MyBatis的集成。

  • 它解决了什么问题?
  • spring-data-jdbc如何补充MyBatis?
  • 这仅仅是一个将Mapper与Repository相结合的问题,还是超越了这个问题。
  • 当我只使用Mappers时,为什么要将MyBatis与spring结合使用。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 17:30:02

简而言之,spring-data-jdbc为提供JDBC的存储提供了域驱动的设计存储库实现。它试图在概念上非常简单(特别是如果您将它与JPA进行比较的话)。并且类似于mybatis,因为它不试图引入隐藏ORM复杂性的抽象。

以下是spring-data-jdbc文档的引文:

  • 如果加载实体,则执行SQL语句。一旦完成,您就有了一个完全加载的实体。不执行延迟加载或缓存。
  • 如果你保存一个实体,它就会被保存。如果你不这样做,它就不会。没有肮脏的跟踪和会话。
  • 关于如何将实体映射到表,有一个简单的模型。它可能只适用于相当简单的情况。如果你不喜欢,你应该编码你自己的策略。Spring对于使用注释自定义策略提供的支持非常有限。

spring-data-jdbc不含铁线莲即可使用。这些查询要么是由spring-data-jdbc自己实现的CRUD查询,要么是使用@Query注释指定的自定义查询。

它确实提供了对mybatis的集成,这允许使用第三种方式来指定查询,即使用mybatis提供的所有功能。这允许在为简单查询使用基于存储库方法名称的自动查询生成的同时创建更复杂的映射。

有时,即使对于简单的CRUD操作,创建SQL查询也是必要的,这在mybatis中被看作是一个限制或问题。spring-data-jdbc允许通过在应用程序中引入一个额外的抽象层(存储库)来解决这个问题。我说additional是因为可以使用mapper作为DDD存储库。

如果应用程序有大量CRUD操作,那么将会引入并使用大量非常相似的代码或一些解决方案,使通用CRUD类似于https://github.com/rickcr/mybatis-generic-crud

spring-data-jdbc允许以相当低的价格很好地解决这个问题。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56273556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档