msl12
V2EX  ›  Java

项目中你们常用 MyBatis 的一对多、一对一等的关联功能么?

  •  2
     
  •   msl12 · May 20, 2019 · 4164 views
    This topic created in 2571 days ago, the information mentioned may be changed or developed.

    目前我们项目中都是 Dao 层没有使用 MyBatis 的关联,是在 Service 层自己进行拼接,这样子若是有表关联的业务就进行多次数据库查询。

    那你们的公司项目中会有用到 MyBatis 的关联的功能么?

    开发效率或性能上,使用或不使用关联会有很大的区别么?

    12 replies    2019-05-21 09:18:21 +08:00
    loveCoding
        1
    loveCoding  
       May 20, 2019
    不用,DBA 禁止...
    beneo
        2
    beneo  
       May 20, 2019   ❤️ 1
    大公司的时候 DBA 禁止,只能 Mybatis,小公司的时候外键用的飞起,hibernate 拯救了我
    HonoSV
        3
    HonoSV  
       May 20, 2019
    多次查数据库,不会有性能问题么
    watzds
        4
    watzds  
       May 20, 2019 via Android
    某些时候多次查询,还有利于数据库缓存
    lihongjie0209
        5
    lihongjie0209  
       May 20, 2019
    这样不挺好的吗? 会有什么问题?
    night98
        6
    night98  
       May 20, 2019
    建议查阅阿里 java 开发手册,不建议使用任何关联查询
    qiyuey
        7
    qiyuey  
       May 20, 2019   ❤️ 1
    这样的方式对缓存是十分友好的,缓存的性能很强,数据库通常是瓶颈
    Jrue0011
        8
    Jrue0011  
       May 20, 2019 via iPhone
    说成关联查询好像容易让有的人认为是 sql 的 join 了,其实 association 和 collection 是延迟调用查询方法…
    msl12
        9
    msl12  
    OP
       May 20, 2019
    @night98 不依靠数据库拼接,而是让业务代码来进行拼接么?
    beginor
        10
    beginor  
       May 20, 2019 via Android   ❤️ 1
    我们用 hibernate,推荐使用关联映射, 做好了还是比较爽的
    Takamine
        11
    Takamine  
       May 20, 2019
    表示要求拆分成多次查询,用 BO 和 VO 去做拼接:doge:。
    loveCoding
        12
    loveCoding  
       May 21, 2019 via iPhone
    @HonoSV 那就避免多次查询,比如 list 转 map 给下层,或者用 guava cache 自动刷新
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1455 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 17:06 · PVG 01:06 · LAX 10:06 · JFK 13:06
    ♥ Do have faith in what you're doing.