ggjjl1
V2EX  ›  Java

请问大家,现在 Java 比较流行的 ORM 框架是哪些?

  •  
  •   ggjjl1 ·
    ggjjl1 · Nov 24, 2020 · 9293 views
    This topic created in 2174 days ago, the information mentioned may be changed or developed.

    Java 服务端开发,Spring 框架几乎成了行业标准。请问和 Spring 结合使用的 ORM 框架现在流行哪一些?还是 MyBatis 吗

    33 replies  •  2025-09-26 16:36:07 +08:00
    orcusfox
    orcusfox
    Nov 24, 2020 via iPhone❤️2
    1
    mybatis, spring jpa
    chendy
    chendy
    Nov 24, 2020
    2
    orm 基本就 hibernate ( spring-data-jpa 基于 hibernate
    mybatis 这种算不上 orm…
    Braisdom
    Braisdom
    Nov 24, 2020
    3
    https://github.com/braisdom/ObjectiveSql

    你可以参考一与,比较新,但会及时响应,自卖自夸,有兴趣可以一起探讨,哈哈
    yjxjn
    yjxjn
    Nov 24, 2020 via Android
    4
    我就知道有人说 mybatia,其实 hibernate,jpa 算 orm,而 mybatis 不算 orm
    wangyanrui
    wangyanrui
    Nov 24, 2020 via Android
    5
    @yjxjn 4 楼+1
    面相数据库编程的东西,好意思叫 ORM (手动狗头)
    cheng6563
    cheng6563
    Nov 24, 2020 via Android
    6
    orm 并不好用
    mumubin
    mumubin
    Nov 24, 2020 via Android
    7
    所有的 orm 最终还是解析成 sql,orm 也都只是语法糖,除了开发效率略高点,都不如好好用 mybatis,直接精进 sql 水平。orm 用的时候很难注意到 for 循环查库,slow sql,多表 join 等不利于性能的问题
    lewis89
    lewis89
    Nov 24, 2020
    8
    @mumubin #7 mybatis 就不多说了,一对多关联关系非常弱鸡,我们公司基本上是为每一个对象都建了一个 mapper,结果就是一对多 全靠代码手工维护,难用的一批,而且枚举全部用 int 值来维护,没有注解跟 IDE 你根本搞不清真正的 java 枚举定义在哪里,另外代码中的数据结构原比数据库表关系的关联关系要丰富得多,数据库只是一个目前硬件环境下妥协的方案,并不是最优方案。另外 mybatis 同样难以避免 for 循环,这跟框架没有任何关系,你让傻子写代码他肯定不会关注这个问题,哪怕是 mybatis 照旧也会用 for 循环。 多表 join ORM 框架也提供很多自定义查询语句生成的代码工具,一句 SQL 都不用写,难在 ORM 本身封装层次多,不透明,黑箱,学习成本使用成本高,mybatis 确实现在操起来,看上去多快好省,但实际上后期维护的成本也不低。
    volantRookie
    volantRookie
    Nov 24, 2020
    9
    根据使用情况来看的话,个人感觉 mybatis 最好还是不要把一对多、多对多这样的关系写进 XML,要不然真的难看,建议使用组合模式,程序多写写数据映射的 model 类,会好很多
    hotcool100
    hotcool100
    Nov 24, 2020
    10
    nutz
    luwies
    luwies
    Nov 24, 2020
    11
    r2dbc
    lower
    lower
    Nov 24, 2020
    12
    当时看到 hibernate 里的什么游离态之类的概念,瞬间就被恶心到了……
    wysnylc
    wysnylc
    Nov 24, 2020
    13
    tkMapper
    varrily
    varrily
    Nov 24, 2020
    14
    mybatis 用这顺手,云原生推荐是直接 jpa 。
    samin
    samin
    Nov 24, 2020
    15
    jjianwen68
    jjianwen68
    Nov 24, 2020
    16
    用 r2dbc 吧
    bk201
    bk201
    Nov 24, 2020
    17
    我一直觉得数据库查询这种玩意不应该和代码耦合在一起,所以 orm 我一直觉得是个玩具。
    daiqiangbudainiu
    daiqiangbudainiu
    Nov 24, 2020
    18
    @bk201 怎么能不耦合?
    xx6412223
    xx6412223
    Nov 24, 2020
    19
    发现好多人不理解 jpa 的概念
    PopRain
    PopRain
    Nov 24, 2020
    20
    命令与查询分离模式, 命令等操作用 ORM, 查询可以直接写 SQL ,兼顾了开发效率和功能; 整个项目写 SQL 对于稍大点项目简直是灾难。。。。
    wysnylc
    wysnylc
    Nov 24, 2020
    21
    tkmapper
    wysnylc
    wysnylc
    Nov 24, 2020
    22
    @wysnylc #21 失忆了
    xiaogui
    xiaogui
    Nov 24, 2020
    23
    spring data jpa
    tinyuu
    tinyuu
    Nov 24, 2020 via iPhone
    24
    ebean +kotlin
    wiix
    wiix
    Nov 24, 2020
    25
    Hibernate 、EclipseLink
    fpure
    fpure
    Nov 25, 2020 via Android
    26
    说实话,用来用去还是 mybatis 最好用
    tctc4869
    tctc4869
    Nov 25, 2020
    27
    beetiSql,jfinal 的 ActiveRecord
    tctc4869
    tctc4869
    Nov 25, 2020
    28
    其实想用面向对象来编写 sql 数据库减少编写 sql 语句成本,还不如用文档数据库。orm 真是在 javaBean 与 Sql 的转换的中间进行一个包装
    tallon
    tallon
    Nov 25, 2020
    29
    我用着 mybatis-plus 还是挺好用的
    GM
    GM
    Nov 25, 2020❤️1
    30
    @Braisdom 上个帖子点过赞了,忘了问了:现阶段稳定性如何?有生产环境用过吗?
    fivesmallq
    fivesmallq
    Nov 25, 2020
    31
    推荐尝试下 ebean
    Braisdom
    Braisdom
    Nov 25, 2020
    32
    @GM 目前 1.3.9 版本是稳定版本,example 下有多种数据库的单元测试,基本覆盖了所有 case,最近在做分页查询,使用起比 MyBatis 方便很多,(我个人觉得,哈哈)
    quejuwen
    quejuwen
    Sep 26, 2025
    33
    jfinal 的 ActiveRecord
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   664 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 21:13 · PVG 05:13 · LAX 13:13 · JFK 16:13
    ♥ Do have faith in what you're doing.