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

本文探讨了JPA和MyBatis在数据访问框架中的差异,JPA作为面向对象的规范,提供自动化持久化,而MyBatis允许更灵活的SQL编写。虽然JPA在自动化和面向对象特性上有优势,但MyBatis在性能和灵活性上更胜一筹。文章指出,JPA在国外更受欢迎,而在中日韩三国MyBatis应用广泛。
摘要由CSDN通过智能技术生成

除了JPA之外,还有一个流行的数据访问框架MyBatis,算是个半自动化的ORM框架。

1. JPA和MyBatis的比较

JPA是个全自动化的对象持久化规范,它使得开发人员只需要针对领域模型编写面向对象的代码,而不必关心底层数据存储和SQL查询;而MyBatis则是一个能够灵活编写SQL语句,并将SQL的入参和查询结果映射成POJOs的一个持久层框架。所以,从表面上看,JPA能方便、自动化更强,而MyBatisSQL语句编写方面则更灵活自由。

本质上看,JPA是面向对象的,而MyBatis是面向关系的。换言之,JPA是以面向对象的领域模型为中心的,而MyBatis是以数据库为中心的。领域模型致力于解决业务逻辑问题,而关系模型致力于解决数据的高效存取问题。

优缺点比较:

  • JPA/Hibernate更自动化而MyBatis更灵活。
  • 某些情况下,MyBatis性能比JPA/Hibernate更好。
  • JPA支持面向对象的继承概念,支持继承映射、多态关联和多态查询,而MyBatis完全不支持。这一点是MyBatis的最大劣势。
  • MyBatis会助长“以数据库为中心”的设计范式。

2. 国人钟情于Mybatis&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值