mybatis Plus 多表联合查询的实现示例

本文主要介绍了mybatis Plus 多表联合查询,分享给大家,具体如下:

//实体类package com.sk.skkill.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@TableName("orders")
@Data
public class Order implements Serializable
{
  public static final long serialVersionUID =1L;
  private String id;
  private String orderName;
  private Date createTime;
  private Date updateTime;
  private String userID;

  @TableField(exist = false)
  private List<Users> listUsers;

  public Order(){

  }

  public Order(String id, String orderName) {
    this.id = id;
    this.orderName = orderName;
  }
}
//dao层
package com.sk.skkill.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sk.skkill.entity.Order;
import com.sun.javafx.collections.MappingChange;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface OrderMapper extends BaseMapper<Order>
{
List<Order> selectOrder();
int addOrder(Order order);
//多表联合查询 按条件orderID
@Select("select t1.*,t2.user_name,t2.nick_name from orders t1 LEFT JOIN users t2 ON t1.user_id =t2.id WHERE t1.user_id= #{id}")
 List<Map<String,Object>> orderUserList(Page<Map<String,Object>> page,String id);

}
//service层
package com.sk.skkill.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sk.skkill.entity.Order;

import java.util.List;
import java.util.Map;

public interface OrderService extends IService<Order>
{
  List<Order> selectOrder();
  int addOrder(Order order);
//  List<Map<String,Object>> orderUserList(Page<Map<String,Object>> page, String id);
  Page<Map<String,Object>> selectListPage(int current,int number,String id);
}
//serviceImpl层
package com.sk.skkill.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sk.skkill.entity.Order;
import com.sk.skkill.mapper.OrderMapper;
import com.sk.skkill.service.OrderService;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements OrderService
{

  @Override
  public List<Order> selectOrder() {
    return baseMapper.selectList(null);
  }

  @Override
  public int addOrder(Order order) {
    return baseMapper.insert(order);
  }

  @Override
  public Page<Map<String, Object>> selectListPage(int current, int number,String id) {
    //新建分页
    Page<Map<String,Object>> page =new Page<Map<String,Object>>(current,number);
    //返回结果
    return page.setRecords(this.baseMapper.orderUserList(page,id));
  }
}
//controller层
package com.sk.skkill.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sk.skkill.entity.Order;
import com.sk.skkill.service.impl.OrderServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("order")
public class OrderController
{
  @Autowired
  private OrderServiceImpl service;

  @RequestMapping("selectOrder")
  public List<Order> selectOrder()
  {
    return service.selectOrder();
  }
  @RequestMapping("addOrder")
 public int addOrder(Order order){
    order=new Order("FGGG","蒙牛MILK");
    return service.addOrder(order);

 }
 @RequestMapping("selectListPage")
  public List<Map<String,Object>>  selectListPage(String id)
  {
    Page<Map<String, Object>> page = service.selectListPage(1, 2,id);
    return page.getRecords();
  }
}

到此这篇关于mybatis Plus 多表联合查询的实现示例的文章就介绍到这了,更多相关mybatis Plus 多表联合查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MybatisPlus自定义Sql实现多表查询的示例

    前言 前段时间看同事的代码,发现他用Layui+MybatisPlus做分页查询做得很规整,认真看了下代码发现这种方式不仅适用于与Layui做分页查询,在任何时候需要多表联查的时候都可以用到.  以下以Layui分页查询作为参考,在实际应用中可以灵活使用. 分页查询VO对象 @Data @AllArgsConstructor @NoArgsConstructor public class LayuiData { private Integer code=0; private Long count

  • MyBatis Plus 实现多表分页查询功能的示例代码

    在Mybatis Plus 中,虽然IService 接口帮我们定义了很多常用的方法,但这些都是 T 对象有用,如果涉及到 多表的查询,还是需要自定义Vo 对象和自己编写sql 语句,Mybatis Plus提供了一个Page 对象,查询是需要设置其中的 size 字段 和 current 字段的值 一.分页配置 可以直接使用selectPage这样的分页,但返回的数据确实是分页后的数据,但在控制台打印的SQL语句其实并没有真正的物理分页,而是通过缓存来获得全部数据中再进行的分页,这样对于大数据

  • 结合mybatis-plus实现简单不需要写sql的多表查询

    项目地址: GITHUB (本地下载) java mybatis 多表查询 简介 实现简单的实体类操作多表,  首先你的项目是使用了mybatis-plus 才可以使用 设计说明 如何关联表? 找第一张表注解为 TableId (mybatis-plus 注解)的属性名, 到每二张表找同样的属性名, 如果没找到,反过来找,如果还没找到,挨个属性找.以此类推,实现关联的前提条件是 主从表的关联例名必须一样 // user 表 @TableId private Integer userId // a

  • MyBatis-Plus多表联合查询并且分页(3表联合)

    这3张表的关系是模型表Model  ===> 训练表Training ===>应用表Application(大概的逻辑是:选择应用,然后训练,然后成为模型) 首先我们先建立实体Model(我使用的data注解不需要get set  @TableField(exist = false) 注解下的属性 是相关联表的属性) package cn.com.befery.dataai.po; import java.util.Date; import org.springframework.boot.j

  • mybatis Plus 多表联合查询的实现示例

    本文主要介绍了mybatis Plus 多表联合查询,分享给大家,具体如下: //实体类package com.sk.skkill.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; import java.util.D

  • MyBatis实现多表联合查询resultType的返回值

    目录 多表联合查询resultType的返回值 一般数据按参数类型返回 根据某字段查询 查询结果为多条记录,存放在list中返回 多表联合查询 解决方案 多表联查,返回结果嵌套list 多表联合查询resultType的返回值 一般数据按参数类型返回 <select id="queryCarIdList" resultType="long">         select id from t_car_car </select>   <s

  • MyBatis 多表联合查询及优化方法

    目录 背景 正文 关于优化 这篇文章我打算来简单的谈谈 mybatis 的多表联合查询.起初是觉得挺简单的,没必要拿出来写,毕竟 mybatis 这东西现在是个开发的都会用,而且网上的文章也是一搜罗一大堆,根本就用不着我来重复.但是吧,就我前几天在做一个多表联合查询的时候,竟然出了很多意想不到的问题,而且这些问题的出现,并不是对 mybatis 不了解,而是在用的过程中会或多或少的忽略一些东西,导致提示各种错误. 背景 老规矩,开始之前,还是要先说说这件事的背景.也就是最近几天,公司要做一个后台

  • ThinkPHP多表联合查询的常用方法

    ThinkPHP中关联查询(即多表联合查询)可以使用 table() 方法或和join方法,具体使用如下例所示: 1.原生查询示例: 复制代码 代码如下: $Model = new Model(); $sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.',

  • cakephp2.X多表联合查询join及使用分页查询的方法

    本文实例讲述了cakephp2.X多表联合查询join及使用分页查询的方法.分享给大家供大家参考,具体如下: 格式化参数: public function getconditions($data){ $this->loadModel("Cm.LoginHistory"); $conditions = array(); foreach ($data as $key=>$val){ if($key=='start_date'){ $conditions['LoginHistor

  • mysql多表联合查询操作实例分析

    本文实例讲述了mysql多表联合查询操作.分享给大家供大家参考,具体如下: MySQL多表联合查询是MySQL数据库的一种查询方式,下面就为您介绍MySQL多表联合查询的语法,供您参考学习之用. MySQL多表联合查询语法: 复制代码 代码如下: SELECT * FROM 插入表 LEFT JOIN 主表 ON t1.lvid=t2.lv_id select * from mytable,title where 表名1.name=表名2.writer ; mysql版本大于4.0,使用UNIO

  • springboot + mybatis-plus实现多表联合查询功能(注解方式)

    第一步:加入mybatis-plus依赖 第二步:配置数据源 spring: thymeleaf: cache: false encoding: utf-8 prefix: classpath:/templates/ suffix: .html enabled: true datasource: url: jdbc:mysql://192.168.1.152:3306/timo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&

  • MyBatis中的表关联查询实现示例

    Mybatis中的一对多对象关联查询查询 模拟情景,商品与商品详情:一件商品可以对应多个商品详情信息,即从商品➡商品详情方向看,属于一对多. 在一对多关系中,需要在属于一的一方的实体类中添加多的一方的集合,一般为List<>类型 //(省去了get和set的方法) public class Goods { private Integer goodsId ; private String title ; private String subTitle ; private Float origin

随机推荐