V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ggjjl1
V2EX  ›  Java

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

  •  
  •   ggjjl1 ·
    ggjjl1 · 2020 年 11 月 24 日 · 8399 次点击
    这是一个创建于 1882 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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