mybatis-plus多表查询操作方法
作者:hexu_blog
这篇文章主要介绍了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多表查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!