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

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

  •  2
     
  •   msl12 · 2019-05-20 16:58:00 +08:00 · 3577 次点击
    这是一个创建于 2014 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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