个人网站涉及企业内容,wordpress手动降级,淮安 网站建设:,wordpress 浏览次数 2问题描述假如目前有一个查询用户详情的接口用户基础表关联了很多用户其他信息的表#xff0c;现在要把所有查询出来#xff0c;是使用多个dao在service中组合#xff0c;还是直接链接查询好示例代码用户表(user_base)用户信息表1(user_info_1)用户信息表2(user_info_2)用户信…问题描述假如目前有一个查询用户详情的接口用户基础表关联了很多用户其他信息的表现在要把所有查询出来是使用多个dao在service中组合还是直接链接查询好示例代码用户表(user_base)用户信息表1(user_info_1)用户信息表2(user_info_2)用户信息表3(user_info_3)...用户信息表n(user_info_n)多个dao查询返回Servicepublic class UserDetailServiceImpl implements UserService{Autowiredprivate UserBaseDao userBaseDao;Autowiredprivate UserInfoDao1 userInfoDao1;Autowiredprivate UserInfoDao2 userInfoDao2;Overridepublic UserInfoVo getDetail(String userId){UserInfoVo userInfoVo new UserInfoVo ();// 多个dao获取相关要返回的信息UserBase userBase userBaseDao.getByUserId(userId);UserInfo1 userInfo1 userInfoDao1.getByUserId(userId);UserInfo2 userInfo2 userInfoDao2.getByUserId(userId);// 最后返回的VO类各种set信息返回给前台userInfoVo.set(dao1返回结果);......userInfoVo.set(daoN返回结果);return userInfoVo ;}}链接查询Servicepublic class UserDetailServiceImpl implements UserService{Autowiredprivate UserBaseDao userBaseDao;Overridepublic UserInfoVo getDetail(String userId){// 单个dao内用链接查询返回一个VO类UserInfoVo userInfoVo userBaseDao.getDetail(userId);// 查询的sql伪代码String sql select 要返回字段 from user_baseleft join user_info_1 on user_base.user_id user_info_1.user_idleft join user_info_2 on user_base.user_id user_info_2.user_id...left join user_info_n on user_base.user_id user_info_n.user_idwhere user_base.user_id :userId;// 这里就可以省略各种setreturn userInfoVo ;}}相关疑问使用第一种多个Dao组合返回数据在Service层各种set虽然要复杂一些但感觉上耦合性没有那么高各个部分dao都很独立,也可以在其他地方复用使用第二种方法,除了要自己手写很长的sql语句,Service层的处理要简单很多。但复用性不够希望能基于相关程序设计思想上对这两种方式的选择给予相关的解答或者有其他设计实现方法。不胜感激