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

2019-05-20 16:58:00 +08:00
 msl12

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

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

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

3464 次点击
所在节点    Java
12 条回复
loveCoding
2019-05-20 17:06:16 +08:00
不用,DBA 禁止...
beneo
2019-05-20 17:09:17 +08:00
大公司的时候 DBA 禁止,只能 Mybatis,小公司的时候外键用的飞起,hibernate 拯救了我
HonoSV
2019-05-20 17:10:31 +08:00
多次查数据库,不会有性能问题么
watzds
2019-05-20 17:19:42 +08:00
某些时候多次查询,还有利于数据库缓存
lihongjie0209
2019-05-20 17:22:15 +08:00
这样不挺好的吗? 会有什么问题?
night98
2019-05-20 17:27:55 +08:00
建议查阅阿里 java 开发手册,不建议使用任何关联查询
qiyuey
2019-05-20 17:32:46 +08:00
这样的方式对缓存是十分友好的,缓存的性能很强,数据库通常是瓶颈
Jrue0011
2019-05-20 17:57:12 +08:00
说成关联查询好像容易让有的人认为是 sql 的 join 了,其实 association 和 collection 是延迟调用查询方法…
msl12
2019-05-20 18:01:18 +08:00
@night98 不依靠数据库拼接,而是让业务代码来进行拼接么?
beginor
2019-05-20 18:56:36 +08:00
我们用 hibernate,推荐使用关联映射, 做好了还是比较爽的
Takamine
2019-05-20 21:38:59 +08:00
表示要求拆分成多次查询,用 BO 和 VO 去做拼接:doge:。
loveCoding
2019-05-21 09:18:21 +08:00
@HonoSV 那就避免多次查询,比如 list 转 map 给下层,或者用 guava cache 自动刷新

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/565905

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX