请问大家,现在 Java 比较流行的 ORM 框架是哪些? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ggjjl1
V2EX    Java

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

  •  
  •   ggjjl1
    ggjjl1 2020-11-24 13:02:29 +08:00 8229 次点击
    这是一个创建于 1814 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    你可以参考一与,比较新,但会及时响应,自卖自夸,有兴趣可以一起探讨,哈哈
    yjxjn
        4
    yjxjn  
       2020-11-24 13:23:16 +08:00 via Android
    我就知道有人说 mybatia,其实 hibernate,jpa 算 orm,而 mybatis 不算 orm
    wangyanrui
        5
    wangyanrui  
       2020-11-24 13:27:34 +08:00 via Android
    @yjxjn 4 楼+1
    面相数据库编程的东西,好意思叫 ORM (手动狗头)
    cheng6563
        6
    cheng6563  
       2020-11-24 13:28:33 +08:00 via Android
    orm 并不好用
    mumubin
        7
    mumubin  
       2020-11-24 13:39:39 +08:00 via Android
    所有的 orm 最终还是解析成 sql,orm 也都只是语法糖,除了开发效率略高点,都不如好好用 mybatis,直接精进 sql 水平。orm 用的时候很难注意到 for 循环查库,slow sql,多表 join 等不利于性能的问题
    lewis89
        8
    lewis89  
       2020-11-24 13:53:02 +08:00
    @mumubin #7 mybatis 就不多说了,一对多关联关系非常弱鸡,我们公司基本上是为每一个对象都建了一个 mapper,结果就是一对多 全靠代码手工维护,难用的一批,而且枚举全部用 int 值来维护,没有注解跟 IDE 你根本搞不清真正的 java 枚举定义在哪里,另外代码中的数据结构原比数据库表关系的关联关系要丰富得多,数据库只是一个目前硬件环境下妥协的方案,并不是最优方案。另外 mybatis 同样难以避免 for 循环,这跟框架没有任何关系,你让傻子写代码他肯定不会关注这个问题,哪怕是 mybatis 照旧也会用 for 循环。 多表 join ORM 框架也提供很多自定义查询语句生成的代码工具,一句 SQL 都不用写,难在 ORM 本身封装层次多,不透明,黑箱,学习成本使用成本高,mybatis 确实现在操起来,看上去多快好省,但实际上后期维护的成本也不低。
    volantRookie
        9
    volantRookie  
       2020-11-24 15:48:12 +08:00
    根据使用情况来看的话,个人感觉 mybatis 最好还是不要把一对多、多对多这样的关系写进 XML,要不然真的难看,建议使用组合模式,程序多写写数据映射的 model 类,会好很多
    hotcool100
        10
    hotcool100  
       2020-11-24 16:03:25 +08:00
    nutz
    luwies
        11
    luwies  
       2020-11-24 16:19:52 +08:00
    r2dbc
    lower
        12
    lower  
       2020-11-24 16:22:21 +08:00
    当时看到 hibernate 里的什么游离态之类的概念,瞬间就被恶心到了……
    wysnylc
        13
    wysnylc  
       2020-11-24 16:26:38 +08:00
    tkMapper
    varrily
        14
    varrily  
       2020-11-24 16:34:08 +08:00
    mybatis 用这顺手,云原生推荐是直接 jpa 。
    samin
        15
    samin  
       2020-11-24 16:44:01 +08:00
    jjianwen68
        16
    jjianwen68  
       2020-11-24 17:00:41 +08:00
    用 r2dbc 吧
    bk201
        17
    bk201  
       2020-11-24 17:08:07 +08:00
    我一直觉得数据库查询这种玩意不应该和代码耦合在一起,所以 orm 我一直觉得是个玩具。
    warcraft1236
        18
    warcraft1236  
       2020-11-24 17:28:22 +08:00
    @bk201 怎么能不耦合?
    xx6412223
        19
    xx6412223  
       2020-11-24 17:30:33 +08:00
    发现好多人不理解 jpa 的概念
    PopRain
        20
    PopRain  
       2020-11-24 17:40:14 +08:00
    命令与查询分离模式, 命令等操作用 ORM, 查询可以直接写 SQL ,兼顾了开发效率和功能; 整个项目写 SQL 对于稍大点项目简直是灾难。。。。
    wysnylc
        21
    wysnylc  
       2020-11-24 17:44:25 +08:00
    tkmapper
    wysnylc
        22
    wysnylc  
       2020-11-24 17:44:43 +08:00
    @wysnylc #21 失忆了
    xiaogui
        23
    xiaogui  
       2020-11-24 17:46:13 +08:00
    spring data jpa
    tinyuu
        24
    tinyuu  
       2020-11-24 18:14:35 +08:00 via iPhone
    ebean +kotlin
    wiix
        25
    wiix  
       2020-11-24 18:46:27 +08:00
    Hibernate 、EclipseLink
    fpure
        26
    fpure  
       2020-11-25 08:31:21 +08:00 via Android
    说实话,用来用去还是 mybatis 最好用
    tctc4869
        27
    tctc4869  
       2020-11-25 11:07:25 +08:00
    beetiSql,jfinal 的 ActiveRecord
    tctc4869
        28
    tctc4869  
       2020-11-25 11:10:32 +08:00
    其实想用面向对象来编写 sql 数据库减少编写 sql 语句成本,还不如用文档数据库。orm 真是在 javaBean 与 Sql 的转换的中间进行一个包装
    tallon
        29
    tallon  
       2020-11-25 13:51:21 +08:00
    我用着 mybatis-plus 还是挺好用的
    GM
        30
    GM  
       2020-11-25 14:54:31 +08:00   1
    @Braisdom 上个帖子点过赞了,忘了问了:现阶段稳定性如何?有生产环境用过吗?
    fivesmallq
        31
    fivesmallq  
       2020-11-25 15:02:15 +08:00
    推荐尝试下 ebean
    Braisdom
        32
    Braisdom  
       2020-11-25 15:13:19 +08:00
    @GM 目前 1.3.9 版本是稳定版本,example 下有多种数据库的单元测试,基本覆盖了所有 case,最近在做分页查询,使用起比 MyBatis 方便很多,(我个人觉得,哈哈)
    quejuwen
        33
    quejuwen  
       47 天前
    jfinal 的 ActiveRecord
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2983 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 12:32 PVG 20:32 LAX 04:32 JFK 07:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86