V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ggjjl1
V2EX  ›  Java

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

  •  
  •   ggjjl1 ·
    ggjjl1 · Nov 24, 2020 · 8611 views
    This topic created in 1985 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
        1
    orcusfox  
       Nov 24, 2020 via iPhone   ❤️ 2
    mybatis, spring jpa
    chendy
        2
    chendy  
       Nov 24, 2020
    orm 基本就 hibernate ( spring-data-jpa 基于 hibernate
    mybatis 这种算不上 orm…
    Braisdom
        3
    Braisdom  
       Nov 24, 2020
    https://github.com/braisdom/ObjectiveSql

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