使用 mybatis 到底要不要写一对多、一对一关联

方法一

Dao 层有一对多、一对一关联
Service 层写业务逻辑
方法二

Dao 层不写一对多、一对一关联,只提供基本的增删查改
Service 层完成关联查询等以及写业务逻辑

方法一在效率上貌似有优势,但写 resultMap 和语句真是不开心
方法二对程序员比较友好,但效率不如方法一,而且 service 层会比较臃肿

不知道大家的项目中都是如何使用的

个人比较喜欢使用第二种.因为目前所做的项目数据库表经常需要改动,加字段,而且我本人也是用mybatis generatro自动生成的,可能会覆盖掉。有没有什么好的建议?

4个回答

将DAO操作写成dubbo服务来单独开发调用 O(∩_∩)O

一对多mybatis很强大的,我个人都是用第一种。能一次查询出来的东西并不想查询两次

比如要查询菜单数据,菜单数据有一级二级,那么按照方法二,查询一级菜单后再去循环查询二级菜单,查询消耗很大。
就算是查询两次的做法,那么service循环的处理逻辑也很烦人的感觉。而且还有关联三个表以上的一对多复杂查询,方法一的简单查询就会要了命。

查询一条两条数据用第二种,查询CMS系统列表分页数据还是用第一种方便的多。况且用熟了,也就是拷贝复制的事情。两种情况结合使用吧。

mybatis很强大的,我个人都是用第一种。

https://www.cnblogs.com/yaobolove/p/5444046.html
一种是:使用嵌套结果映射来处理重复的联合结果的子集

另一种呢是:通过执行另外一个SQL映射语句来返回预期的复杂类型

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐