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 ...
随机推荐
- 使用BeautifulSoup爬取汽车之家新闻
1 先select到改数据上层的标签,取第一个[0],然后attrs获取单标签里面的内容,或者get_text获取成对标签内文本2 find就是明确了标签之后,是唯一的,就可以使用find(标签名). ...
- mybatis-plus - 初识
一. 集成 pom.xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid& ...
- Python—网络通信编程之tcp非阻塞通信(socketserver)
服务端代码 import socketserver # 定义一个类 class MyServer(socketserver.BaseRequestHandler): # 如果handle方法出现报错, ...
- 经常犯的错误之递归写不全return
在写递归函数的时候,只在最后一层写return,中间的过程没有return,导致结果的丢失. 举个例子 LL query(LL i, LL k) { if (sum[i] < k) { ; } ...
- ASP.NET + MVC5 入门完整教程五 --- Razor (模型与布局)
https://blog.csdn.net/qq_21419015/article/details/80451895 1.准备示例项目 为了演示Razor,使用VS创建一个名称为“Razor”的新项目 ...
- xpath解析html标签
最近忙一个需求:把一个字符串形式的html文档转化成excel. 分解需求: ① 实现语言 ———— python ② html解析 ———— 用 lxml库的etree工具,xpath方式解析文档树 ...
- 题解【2.23考试T2】str
2. str [题目描述] 这是一道传统题,源代码的文件名为 str.cpp/c/pas. 构造 n 个 01 字符串 S1...Sn,使得对于任意 i≠j,Si 不是 Sj 的前缀.在最小化串长和的 ...
- Android开发实战——记账本(2)
开发日志(2)——Bean目录以及数据库 首先编写一些自己生成的数据进行测试,看一下能否显示在模拟器上.那前提就是先写出bean目录,这和之前学的Javaweb步骤差不多.bean目录有三个变量事件. ...
- 安装Docker:解决container-selinux >= 2.9问题
1.安装Docker要求Centos内核版本高于3.10:通过uname -r查看当前系统的内核版本 uname -r 2.使用root登陆系统,确保yum包保持更新到最新: sudo yum ...
- VS调试工具
F5--启动运行,跳到下一个断点 F10--逐步调试 F11--逐句调试 F10和F11的区别: method(); int a = 1; 当程序运行到如上面的method方法时,按F10会直接跳到下 ...