学习plus真的觉得写代码真的越来越舒服了。昨天开始接触吧,只要学会了多表关联查询。plus就能随意搭配使用了。

关于怎么搭建的就自行了去研究了哦。这里直接进入主题。

我用的是springboot+mybatis-plus。新项目我打算以后都是这样了。

配置一个分页插件!

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;@EnableTransactionManagement
@Configuration
@MapperScan("com.szpdc.Dao")//输入你的dao层的包
public class MybatisPlusConfig {/*** 分页插件*/@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}/*** SQL执行效率插件*/@Bean
//  @Profile({ "dev", "test" }) // 设置 dev test 环境开启public PerformanceInterceptor performanceInterceptor() {return new PerformanceInterceptor();}
}

Controller

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

Service

import java.util.Map;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;public interface UserService {Page<Map<String,Object>> selectListPage(int current, int number);}

  

ServiceImpl

import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;/*** * @Author By Yirs* @Date 2018-12-01 21:18:06* @Description mybatis-plus 在服务层继承了ServiceImpl 就有了 UserMapper的 就少了以前的@Autowired 注入dao层*/@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {@Overridepublic Page<Map<String,Object>> selectListPage(int current, int number) {// 新建分页Page<Map<String,Object>> page = new Page<Map<String,Object>>(current, number);// 返回分页结果 1为id return page.setRecords(this.baseMapper.dyGetUserList(page,1));}}

Dao

import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;/*** *@Author By Yirs*@Date 2018-12-01 22:27:13*/public interface UserMapper extends BaseMapper<User> {/*** 为了区别plus原来的查询select*的字段 ,自定义为dy* @param 分页查询* @return 多表关联查询*/@Select("SELECT a.id,a.`name`,a.age,b.`describe` FROM USER a LEFT JOIN userinfo b ON a.id = b.user_id where a.id=#{id}")List<Map<String, Object>> dyGetUserList(Page<Map<String,Object>> page,Integer id);}

结果

  

Sql语句

需要就拿去当测试。

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,`age` int(11) DEFAULT NULL,`email` varchar(255) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '谢谢', '18', '32as1d564@qq.com');
INSERT INTO `user` VALUES ('2', '行政村v', '22', '3234564@qq.com');
INSERT INTO `user` VALUES ('3', '查询啊', '60', '35asd564@qq.com');
INSERT INTO `user` VALUES ('4', '才表报错', '30', '32弟媳妇64@qq.com');
INSERT INTO `user` VALUES ('5', 'asdasd', '22', 'sdfsad');
INSERT INTO `user` VALUES ('6', 'dsfds', '32', 'sdafsdf');
INSERT INTO `user` VALUES ('7', 'sdfxczv', '33', 'xcvbvchrwt');
INSERT INTO `user` VALUES ('8', 'dfsalkcxjv', '99', 'jklsdhcfvlkjsda');
INSERT INTO `user` VALUES ('9', 'jskdchvc,m', '34', 'dvclkjh');
-- ------------------------------ ------------------------------ ----------------------------
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (`id` int(11) NOT NULL,`user_id` int(11) DEFAULT NULL,`describe` varchar(255) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of userinfo
-- ----------------------------
INSERT INTO `userinfo` VALUES ('1', '1', '用户1');

只要mybatis基础够好这个很好理解的

转载于:https://www.cnblogs.com/syscal/p/10051595.html

Mybatis-plus多表关联查询,多表分页查询相关推荐

  1. mysql join 组合索引_详解MySQL两表关联的连接表创建单列索引还是组合索引最优...

    概述 今天主要介绍一下MySQL中两表关联的连接表是如何创建索引的相关内容,下面来看看详细的介绍. MySQL两表关联的连接表创建索引 创建数据库的索引,可以选择单列索引,也可以选择创建组合索引. 假 ...

  2. mysql join 组合索引,图文详解MySQL中两表关联的连接表如何创建索引

    本文介绍了MySQL中两表关联的连接表是如何创建索引的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 问题介绍 创建数据库的索引,可以选择单列索引,也可以选择创建组合索引. 遇到如下这种情况 ...

  3. 使用nhmicro使分库分表支持排序后的分页查询

    2019独角兽企业重金招聘Python工程师标准>>> 常见的在创建数据时根据规则分库分表保存,查询时往往只支持按照id进行查询. Nhmicro(开源地址为 https://git ...

  4. mybatis 分页查询_MyBatis之分页查询:MyBatis PageHelper

    MyBatis,作为目前流行的ORM框架,大大方便了日常开发.而对于分页查询,虽然可以通过SQL的limit语句实现,但是比较繁琐.而MyBatis PageHelper的出现,则解决了这一痛点.这里 ...

  5. oracle左表关联与又表关联,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: SQL> create tablestudent1 ( sidvarchar(3), snamevarchar(6), sagenum ...

  6. java hibernate 表关联_Hibernate多表关联

    一.多对一进行关联(多个学生对应同一间宿舍)---学生是主体,宿舍是附体,关联关系在主体学生中设置,在学生类中设置宿舍类,由于宿舍类只有一个可以直接用类来设置,在映射学生类(User)中包含宿舍这个类 ...

  7. MySQL分表后,如何做分页查询?

    MySQL分表方式分为垂直分表和水平分表,这两种分表形式都比较简单,简单理解垂直分表指的是:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能.这时需要把大 ...

  8. mysql 删除语句多表关联_MySQL多表关联数据同时删除sql语句

    MySQL多表关联数据同时删除sql语句 有需要的朋友可参考. DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 代码如下 1 delete from t1 wher ...

  9. java mybatis分页查询语句_mybatis分页查询的实现(一)

    一.总结了mybatis中五种不同实现分页查询的方法 UserMapper.java接口文件 public interface UserMapper { //分页查询 public List sele ...

  10. java分页查询_java实现分页查询

    1.基本思路 我现阶段的分页查询的实现是基于sql语句的. select * from user where id limit a, b 构造出相应的a和b就可以查询出想要的数据,在显示在页面上.重点 ...

最新文章

  1. 高并发环境下如何优化Tomcat性能?看完我懂了!
  2. java输出一副扑克牌_JAVA编一副扑克牌
  3. java程序员饱和了吗?
  4. Eclipse 解决PHP函数代码不能自动提示问题
  5. ZigBee TI ZStack CC2530 8.4 如何用高版本IAR打开低版本协议栈
  6. 计算机日志研究方法,基于日志的计算机取证技术研究与实现
  7. HDFS 中常见的Timeout
  8. 解决:Conversion to Dalvik format failed: Unable to execute dex: null
  9. vue动态改变css样式
  10. 软件可行性研究报告模板
  11. 数据库表连接之左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)
  12. caxa线切割怎样画链轮,收藏:Autocad实战教程-线切割画链轮
  13. 九宫格按键输入(java)
  14. javase学习——面向对象(下)
  15. MEION:Costas环 环路滤波器参数设置程序
  16. RSH-810微机智能母线电弧光保护装置
  17. 微信公众号打开的h5网页点击按钮返回公众号
  18. “21 天好习惯”第一期-4
  19. 转自科学松鼠会------压缩感知的基础认识
  20. 微信小程序-提交表单成功弹窗提示

热门文章

  1. Linux的shell scripts的shell脚本练习
  2. Java多线程——多线程的基本概念和使用
  3. 软考中高项学员:2016年3月14日作业
  4. Android监听SD卡文件变化
  5. 关于开源软件的书籍一定要尽量提供搭配好的软件版本
  6. 【bzoj2300】【Luogu P2521】 [HAOI2011]防线修建 动态凸包,平衡树,Set
  7. CC2540开发板学习笔记(一)——LED点亮
  8. 『中级篇』k8s的NodePort类型Service以及Label的简单实用(68)
  9. pandas数据结构:Series/DataFrame;python函数:range/arange
  10. 《Spring Cloud与Docker微服务架构实战》配套代码