mybatis-plus多表查询

33 篇文章 1 订阅
1 篇文章 0 订阅

在多表查询返回结果时:应该如何处理呢?

 第一种:在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;
	}

 

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hexu_blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值