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

请问各位喜欢用 JOOQ Hibernate Mybatis 其中哪个框架

  •  
  •   bxb100 · 2018-02-08 20:12:46 +08:00 · 13114 次点击
    这是一个创建于 2505 天前的主题,其中的信息可能已经有所发展或是发生改变。

    能说一下喜欢的原因是最好的..谢谢各位大佬

    23 条回复    2020-07-09 08:59:38 +08:00
    jorneyr
        1
    jorneyr  
       2018-02-08 20:22:40 +08:00   ❤️ 1
    MyBatis: SQL 就应该有 SQL 的样子,DBA 能够优化 SQL,业务里非常多的多表联合查询
    hujianxin
        2
    hujianxin  
       2018-02-08 21:00:54 +08:00   ❤️ 1
    MyBatis:而且喜欢使用 xml 而不是注解的方式,我喜欢小而美的东西。

    1. mybatis 原理简单而清晰,使用起来不会存在盲点
    2. mybatis 使用简单,通过 xml+sql 语句的方式,既没有向原始 sql 那样繁琐,也不会过度封装,做到了我心目中比较好的中和
    yuankui
        3
    yuankui  
       2018-02-08 21:01:05 +08:00   ❤️ 1
    spring-data-jpa

    业务代码为何要关心那么多的 SQL?增删改查大多大同小异,不需要那么多重复的 sql
    如果需要优化, 也有优化 sql 的口子.
    ke1e
        4
    ke1e  
       2018-02-08 21:35:00 +08:00 via Android
    jpa
    crazyq
        5
    crazyq  
       2018-02-08 21:38:44 +08:00
    Spring-data-jpa.
    kingcos
        6
    kingcos  
       2018-02-08 21:39:32 +08:00 via iPhone
    以前用 MyBatis,后来就 JPA
    kingcos
        7
    kingcos  
       2018-02-08 21:39:48 +08:00 via iPhone
    @kingcos 现在都快忘了😂…
    jimrok
        8
    jimrok  
       2018-02-08 23:00:23 +08:00
    用自己撸的
    woscaizi
        9
    woscaizi  
       2018-02-08 23:21:22 +08:00 via iPhone
    现在用 springboot 比较多,所以在用 spring-data-jpa,它也可以很好的支持原生 sql。
    wdlth
        10
    wdlth  
       2018-02-08 23:35:04 +08:00   ❤️ 1
    DBA 自己写视图,普通的 CRUD 就是 JPA+querydsl
    autulin
        11
    autulin  
       2018-02-08 23:45:31 +08:00 via iPhone   ❤️ 1
    现在用 jpa 爽的飞起(主要是在插入的时候),但是在查询的时候也怀念 MyBatis 的手动 XML 写 mapping,主要这样可以一次只查询部分字段,可以做到比较精简。一直想在 jpa 中找到类似的但更加优雅的方法,但是始终没有找到,目前暂时的方法就是使用构造函数取部分字段,这样最后其它字段都是 null,加上 JsonIgnore 注解,最后可以起到屏蔽的效果。

    不知各位有没有跟我一样的需求
    letitbesqzr
        12
    letitbesqzr  
       2018-02-09 09:01:04 +08:00   ❤️ 3
    在企业级应用动则上千张表的情况下,不用 hibernate 这样的框架,关联关系都得把你写哭。
    hibernate 这种框架,那一查询带出一堆关联,在互联网项目中用起来那速度简直是灾难。。

    所以没有什么喜不喜欢的,看什么适合某个项目而已。
    flyindance
        13
    flyindance  
       2018-02-09 09:17:36 +08:00
    mysql 创建视图性能消耗严重吗?
    letitbesqzr
        14
    letitbesqzr  
       2018-02-09 09:23:53 +08:00
    @autulin #11 期待 jpa 的下一个版本规范,现在对于级联查询的 EntityGraph 太难用了。。hibernate 对 jpa 的实现 又不能支持 hibernate 的 fetch 机制
    nita22
        15
    nita22  
       2018-02-09 10:49:14 +08:00   ❤️ 1
    还是比较喜欢自己写 SQL,所以还是比较偏好 MyBatis。反正简单的可以用 Generator 直接生成,复杂的就自己写 SQL 语句
    mrsatangel
        16
    mrsatangel  
       2018-02-09 12:01:43 +08:00
    我很好奇,大家是怎么解决 DDL 变更之后 MyBatis 的 xml 的更新问题的?比如数据库里面增加了一个字段,那么 xml 里面也要相应增加一个字段,resultMap 也要增加一个字段。问题是 xml 文件里面可能有多个 resultMap,不同的语句的 resultMap 也不一样,一不小心就会对不上。简单一点的 xml 可以先删掉再用 MyBatisGenerator 重新生成一遍,如果 xml 里面有自己写的复杂的 resultMap 呢?
    xuqd
        17
    xuqd  
       2018-02-11 10:19:10 +08:00
    @mrsatangel mybatis + mybatis generator
    xuqd
        18
    xuqd  
       2018-02-11 10:20:51 +08:00
    @mrsatangel 不好意思没看清。。。。
    carakan
        19
    carakan  
       2018-02-22 14:51:07 +08:00
    @autulin 只查询部分字段可以引入 QueryDSL 呀,我是强迫证,看到每次查询那些多余的字段,我就开始查资料搞。。。一开始发现 Specification。。。但是还是不够灵活。。后来发现 QueryDsl。。。这才完美了。。。每次查询自己想要的字段。。

    PS:有人用过 JOOQ 么
    听说 JOOQ 不像 Hibernate 过度包装,也不像 mybatis 一样不符合 OO 思想。。。
    PoetAndPoem
        20
    PoetAndPoem  
       2019-02-14 18:51:59 +08:00 via Android
    @yuankui 优化 sql 具体指的是?
    yuankui
        21
    yuankui  
       2019-02-14 23:00:24 +08:00
    @PoetAndPoem 搜一下 N+1 问题
    tctc4869
        22
    tctc4869  
       2020-01-02 11:13:14 +08:00
    JOOQ,只能使用 Postgresql 和 mysql 等免费开源的数据库,如果要使用 sql server,那就得付费
    ecoolper
        23
    ecoolper  
       2020-07-09 08:59:38 +08:00
    试用下 beetlsql
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5336 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:10 · PVG 16:10 · LAX 00:10 · JFK 03:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.