原创 | 使用JPA实现DDD持久化-JPA vs MyBatis


除了之外,还有一个流行的数据访问框架,算是个半自动化的框架。
1. JPA和MyBatis的比较
是个全自动化的对象持久化规范,它使得开发人员只需要针对领域模型编写面向对象的代码,而不必关心底层数据存储和查询;而则是一个能够灵活编写语句,并将的入参和查询结果映射成的一个持久层框架。所以,从表面上看,能方便、自动化更强,而 在语句编写方面则更灵活自由。
本质上看,是面向对象的,而是面向关系的。换言之,是以面向对象的领域模型为中心的,而是以数据库为中心的。领域模型致力于解决业务逻辑问题,而关系模型致力于解决数据的高效存取问题。
优缺点比较:
JPA/Hibernate更自动化而MyBatis更灵活。
某些情况下,MyBatis性能比JPA/Hibernate更好。
JPA支持面向对象的继承概念,支持继承映射、多态关联和多态查询,而MyBatis完全不支持。这一点是MyBatis的最大劣势。
MyBatis会助长“以数据库为中心”的设计范式。
2. 国人钟情于Mybatis,而老外却喜欢Hibernate/JPA
在国际上,非常流行,而很少人使用。以下图表来自2018年JVM 生态报告:()

的实现框架的占比达到惊人的54%,而占比只有区区6%。
广泛使用的地区主要是中日韩三国。
详细内容请戳这里↓↓↓
这一节就讲到这里,下一节我们讲"只要O,忘记R"。
如果觉得有收获,点个【赞】鼓励一下呗!
