mybatis-plus多表查询操作方法
在多表查询返回结果时:应该如何处理呢?
第一种:在xml中使用 resultMap 处理,我本人不推荐,因为(如果一个xml中如果有多个多张表查询,就得写多个resultMap与之对应)
第二种:返回结果用实体接收,但是返回的是多张表的字段,那就得写一个实体中包含多张表的所有属性才能接收,这里也不建议
第三种:也是准备说的
1).我们查询返回的结果无非是一个个的map类型,然后封装进入List中,看一下xml文件
<!-- 查询超管列表 -->
<select id="managerList" resultType="map" >
SELECT m.*,r.rolename FROM
tbl_manager_info m
INNER JOIN
tbl_role_info r
ON
m.account=r.account
AND
m.type='0'
<if test="account!=null and account!='' ">
AND m.account=#{account}
</if>
ORDER BY
m.createdtime
DESC
</select>2). java代码中的mapper,返回的类型我们设置为List<Map<String,Object>>即可,这里必须继承BaseMapper类,才能实现分页,注意了
public interface ManagerMapper extends BaseMapper<TblManagerInfo>{
//查询超管列表
public List<Map<String,Object>> managerList(Pagination page,Map<String,Object> params) throws Exception;3). service层,记得继承 IService
public interface ManagerService extends IService<TblManagerInfo>{
//查询超管列表
public Page<Map<String,Object>> managerList(Page<Map<String,Object>> page,Map<String,Object> params)throws Exception;
}4).service实现类
@Service
public class ManagerServiceImpl extends ServiceImpl<ManagerMapper, TblManagerInfo> implements ManagerService {
@Autowired
private ManagerMapper managerDao;
@Override
public Page<Map<String, Object>> managerList(
Page<Map<String, Object>> page, Map<String, Object> params)
throws Exception {
return page.setRecords(managerDao.managerList(page, params));
}
}5).controller层
//超管列表
@RequestMapping("/admin/queryManagerList")
@ResponseBody
public ResultVo queryManagerList(HttpServletResponse response,HttpServletRequest request,
@RequestParam("page") Integer pageNo,
@RequestParam("limit") Integer pageSize,
@RequestParam(value="account",defaultValue="")String account
) throws Exception{
//这是我自己定义的封装类,返回前端的整和
ResultVo rv=ResultVo.getResultVo();
try {
Map<String,Object> params=new WebUtils().getMap();
params.put("account", account);
//这个位置开始调用
Page<Map<String,Object>> page=new Page<Map<String,Object>>(pageNo, pageSize);
managerService.managerList(page,params);//这里就得到数据了
rv.setCount(page.getTotal());//往封装类存入数据量
rv.setData(page.getRecords());//往封装类存入数据
rv.setCode("0");
} catch (Exception e) {
rv.setCode("1");
e.printStackTrace();
}
return rv;
}到此这篇关于mybatis-plus多表查询的文章就介绍到这了,更多相关mybatis-plus多表查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Javaweb会话跟踪技术Cookie和Session的具体使用
本文主要介绍了Javaweb会话跟踪技术Cookie&Session的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-07-07
IntelliJ IDEA AI Assistant 携带OpenCode保姆级
本文介绍了JetBrains官方AI插件AIAssistant的安装、使用及接入本地客户端的过程,通过安装、测试、接入本地客户端等步骤,详细描述了使用过程中的注意事项和操作方法,感兴趣的朋友跟随小编一起看看吧2026-04-04
No ‘Access-Control-Allow-Origin‘ header is&nb
这篇文章主要介绍了No ‘Access-Control-Allow-Origin‘ header is present跨域及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-02-02


最新评论