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 oracle多表联合查询分页数据重复的问题
Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象:数据总条数正确,但有些记录多了,有些记录却又少了甚至没了.针对这个问题找了好久,最后发现是由于 ...
- mybatis实现多表联合查询
本文转自:http://www.cnblogs.com/xdp-gacl/p/4264440.html#!comments 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) ...
- MyBatis 多表联合查询及优化 以及自定义返回结果集
下面就来说一下 mybatis 是通过什么来实现多表联合查询的.首先看一下表关系,如图: 这 里,我已经搭好了开发的环境,用到的是 SpringMVC + Spring + MyBatis,当然,为了 ...
- MyBatis之三:多表联合查询
在这篇文章里面主要讲解如何在mybatis里面使用一对一.一对多.多表联合查询(类似视图)操作的例子. 注:阅读本文前请先大概看一下之前两篇文章. 一.表结构 班级表class,学生表student, ...
- MyBatis 多表联合查询,字段重复的解决方法
MyBatis 多表联合查询,两张表中字段重复时,在配置文件中,sql语句联合查询时使用字段别名,resultMap中对应的column属性使用相应的别名: <resultMap type=&q ...
- mybatis:开发环境搭建--增删改查--多表联合查询(多对一)
什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...
- 一步步学Mybatis-实现多表联合查询(4)
上一章节中我们已经完成了对单表的CRUD操作,接下来今天这一讲讲述的是关于Mybatis在多表查询时候的应用,毕竟实际业务中也是多表的联合查询比较多嘛~ 还记得最一开始我们新建过一张Website表吗 ...
- MyBatis 中两表关联查询MYSQL (14)
MyBatis 中两表关联查询MYSQL 1.创建数据库表语句 2.插入测试数据 3.pom文件内容 <?xml version="1.0" encoding="U ...
- yii 多表联合查询的几种方法
yii多表联合查询, 第一种,用command,自己拼接sql语句执行查询 第二种,用AR,model需继承下面的ar,执行queryall或queryrow方法 <?php //applica ...
随机推荐
- js面向对象的程序设计 --- 中篇(创建对象) 之 工厂模式和 构造函数模式
创建对象 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量重复代码. ·工厂模式 工厂模式是一种广为人知的设计模式,这种模式 ...
- 1-Django2.2安装指南
django快速安装指南 作为一个Python Web框架,Django需要Python环境.下面是Django需要对应的python版本. Django版本 python版本 1.11 2.7, 3 ...
- 【算法学习记录-排序题】【PAT A1012】The Best Rank
To evaluate the performance of our first year CS majored students, we consider their grades of three ...
- AcWing 898. 数字三角形
//从上往下 #include <iostream> #include <algorithm> using namespace std; , INF = 1e9; int n; ...
- GO111MODULE
GO111MODULE的功能: //为了解决项目不用放在go的src目录下,src应该放一些官方的包,而不应该放项目 //模块是相关Go包的集合.modules是源代码交换和版本控制的单元. go命令 ...
- FreeRTOS学习笔记4:时间管理
绝对时间:abs Time相对时间:百分比% time IDLE是空闲任务. RUN_Time_State:port...()初始化一个外设提供时基单元 //具体初始化要自己操作这个定时器的分辨率高于 ...
- sqlmap使用教程(超详细)
-u 指定目标URL (可以是http协议也可以是https协议) -d 连接数据库 --dbs 列出所有的数据库 --current-db 列出当前数据库 --tables 列出当前的表 --col ...
- MongoDB_05_更新和删除
文档的更新和删除 更新文档的方法: db.collection.update(query,update,options) //或 db.collection.update( <query> ...
- vue 生命钩子周期之理解
对于vue的初学者来说,理解vue的生命钩子周期是很有必要的.什么是生命钩子周期呢,顾名思义就是 “实例初始化” 到 “实例被销毁” 的过程. 理解vue的生命钩子周期,我们就可以更好的在项目中运 ...
- 边双连通分量 jarjan (poj 3177)
大意:给定一个无向连通图,判断至少加多少的边,才能使任意两点之间至少有两条的独立的路(没有公共的边,但可以经过同一个中间的顶点). 思路:在同一个双连通分量里的所有的点可以看做一个点,收缩后,新图是一 ...