mybatis-plus多表查询操作方法

 更新时间:2023年12月25日 11:09:47   作者: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多表查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中Klass模型与类加载的详细机制

    Java中Klass模型与类加载的详细机制

    这篇文章主要介绍了Java中Klass模型与类加载的详细机制,java语言是在jvm中运行而jvm是不认识java代码的我们使用javac编译的class文件jvm是不认识的 所以有一个类加载的动作 这个动作就是把class字节码拼装成一个klass类型,需要的朋友可以参考下
    2023-08-08
  • Java使用substring()截取(提取)子字符串

    Java使用substring()截取(提取)子字符串

    这篇文章主要介绍了Java使用substring()截取(提取)子字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java中多线程与并发_volatile关键字的深入理解

    Java中多线程与并发_volatile关键字的深入理解

    这篇文章主要给大家介绍了关于Java中多线程与并发_volatile关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解Java中@Override的作用

    详解Java中@Override的作用

    这篇文章主要介绍了详解Java中@Override的作用的相关资料,希望通过本文能帮助到大家,让大家理解这部分内容,需要的朋友可以参考下
    2017-10-10
  • SpringCloud学习笔记之OpenFeign进行服务调用

    SpringCloud学习笔记之OpenFeign进行服务调用

    OpenFeign对feign进行进一步的封装,添加了springmvc的一些功能,更加强大,下面这篇文章主要给大家介绍了关于SpringCloud学习笔记之OpenFeign进行服务调用的相关资料,需要的朋友可以参考下
    2022-01-01
  • java后台接收app上传的图片的示例代码

    java后台接收app上传的图片的示例代码

    本篇文章主要介绍了java后台接受app上传的图片的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • SpringBoot 整合Security权限控制的初步配置

    SpringBoot 整合Security权限控制的初步配置

    这篇文章主要为大家介绍了SpringBoot 整合Security权限控制的初步配置实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan

    Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRa

    这篇文章主要介绍了Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRan,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解RocketMQ 消费端如何监听消息

    详解RocketMQ 消费端如何监听消息

    这篇文章主要为大家介绍了RocketMQ 消费端如何监听消息示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Java连接mysql数据库的详细教程(推荐)

    Java连接mysql数据库的详细教程(推荐)

    这篇文章主要介绍了Java连接mysql数据库的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论