Skip to content

JPA or Jimmer?不同ORM对项目开发的影响?

更新: 9/1/2025 字数: 0 字 时长: 0 分钟

作为一名后端开发者,最常接触的业务就是CRUD,在这个过程中就离不开ORM框架的使用,在国内最常使用的ORM框架应该是Mybatis以及其延伸物Mybatis-xxx系列(flex plus join.......),而国外的话则应该是由hibernate延伸出的Spring Data JPA。

最近(其实已经有了一段时间了)国产又有一个新的框架——Jimmer,其优秀的设计以及队Kotlin原因的顶级支持吸引了很多开发者的使用。

后面和群友们聊了一下关于Jimmer和JPA的事情,又延申到队ORM的讨论,逐渐对ORM的形式有了一个自己的看法。

在我看来或许ORM只应该分为两类——面向对象或面向数据库。

比如Hibernate和JPA,我们会发现其具有将实体类直接映射为数据库表数据的功能,甚至在一些情况下实体类实例就代表则一行表数据(在某种程度上你可以认为Redisson也是这种思想)

而Mybatis或者Jimmer,本质上则是从数据库上获取出一条数据,然后进行修改,最后再填回到数据库表中。

可能这里会有一些小伙伴们产生疑惑,这两种方式区别大吗?

其实还是挺大的,因为这在一定程度上决定了开发者在开发时的思想

当一个新手开发者(甚至可能还没有一套自己的开发流程时),如果选用Mybatis作为ORM,那么其开发做法可能是先创建一个数据库表,然后根据数据库表的字段映射到实体类上,接着想法可能就会围绕着如何针对数据库表进行开发

而如果使用JPA作为ORM,那么他的开发流程可能就是先去定义一个对象,然后围绕这个对象进行一系列的操作,至于针对数据库的一系列操作,则是更加大胆的交给框架代替我们完成

这两种不同的开发模式很难说孰优孰劣,但是围绕面向对象而不操心数据库的开发方式或许能够减少开发者更多的心智负担,让开发者将注意力更多的集中在代码的优化与业务的实现上,而不是考虑如何将业务转换成一个由Java调用的SQL脚本

本站访客数 人次      本站总访问量