一、MyBatis-Plus简介

1.1MyBatis-Plus是什么?

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

快速开发特别方法,内部封装了常用的CRUD操作,简单好用。

1.2为什么使用MyBatis-Plus?

1.3 核心原理是什么?

通过扫描对应的实体类,解析出对应的数据库表的字段名称,根据默认的方法,生成对应的sql语句(解析映射类,对应的注解),代理模式生成对应dao层接口的实现类。

二、MyBatis-plus初体验

2.1 创建SpringBoot项目

创建基于SpringBoot的项目,并且完成相关依赖,数据库、数据库连接池、MyBatis-Plus、Spring、SpringMVC。

2.2 准备数据库

create database db_mp;

use db_mp;

create table work(id int primary key AUTO_INCREMENT,name varchar(20),address varchar(30),money int,createtime datetime);

2.3 使用代码生成器

使用MP自带的代码生成器,完成对应代码的生成。

代码生成器项目链接:

2.4 拷贝对应的代码

按照传统的三层模式,完成对应的代码

2.5 配置

开关类上需要使用注解@MapperScan进行扫描dao层接口

配置文件中,需要设置数据库相关的配置

在需要在配置中,设置mapper文件的路径

2.6 启动

启动项目,在浏览器中访问项目。

2.7 测试

对写好的CRUD接口进行测试。

三、MyBatis-Plus热门操作

3.1 分页

内部使用了IPage<T>接口,我们只需要创建Page对象,并且设置当前的页码和每页显示的数量就可以了。

//分页查询

@ApiOperation(value = "分页查询")

@GetMapping("work/page.do")

public List<Work> page(int page,int limit){

    Page<Work> page1=new Page<>(page,limit);

    return workService.page(page1).getRecords();

}

3.2 条件查询

我们在开发中难免要使用动态条件查询,而Mybatis-Plus也是封装好了,查询接口为Wrapper<T>,而我们在使用的时候,可以创建QueryWrapper<T>对象,实现动态查询的拼接。
//动态条件查询

@ApiOperation(value = "动态查询")

@GetMapping("work/query.do")

public List<Work> query(String name){

    QueryWrapper<Work> queryWrapper=new QueryWrapper<>();

    queryWrapper.eq("name",name);

    return workService.list(queryWrapper);

}
 

源码地址:https://github.com/xingpenghui/Mybatisplus_Sys.git

五分钟带你走入MP的更多相关文章

  1. Python专题——五分钟带你了解map、reduce和filter

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题第6篇文章,给大家介绍的是Python当中三个非常神奇的方法:map.reduce和filter. 不知道大家看到ma ...

  2. 五分钟带你深入了解Redis

    相信phper都知道Redis是什么,既然如此,为表仪式感,首先我还是得说说什么是Redis. Redis是什么 redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是 ...

  3. Python——五分钟带你弄懂迭代器与生成器,夯实代码能力

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周一Python专题,给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉 ...

  4. 五分钟带你读懂 堆 —— heap(内含JavaScript代码实现!!)

    一.概念  说起堆,我们就想起了土堆,把土堆起来,当我们要用土的时候,首先用到最上面的土.类似地,堆其实是一种优先队列,按照某种优先级将数字"堆"起来,每次取得时候从堆顶取.  堆 ...

  5. 五分钟带你入门TensorFlow

    TensorFlow是Google开源的一款人工智能学习系统.为什么叫这个名字呢?Tensor的意思是张量,代表N维数组:Flow的意思是流,代表基于数据流图的计算.把N维数字从流图的一端流动到另一端 ...

  6. 五分钟带你读懂 TCP全连接队列(图文并茂)

    爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方. 本文 架构技术专栏 已收录,有各种视频.资料以及技术文章. 一.问题 今天有个小伙伴跑过来告诉我有个奇怪的问题需要协助下,问题确实也 ...

  7. OpenCV开发笔记(五十五):红胖子8分钟带你深入了解Haar、LBP特征以及级联分类器识别过程(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  8. OpenCV开发笔记(五十六):红胖子8分钟带你深入了解多种图形拟合逼近轮廓(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  9. OpenCV开发笔记(六十五):红胖子8分钟带你深入了解ORB特征点(图文并茂+浅显易懂+程序源码)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

随机推荐

  1. 马上AI全球挑战者大赛-违约用户风险预测

    方案概述 近年来,互联网金融已经是当今社会上的一个金融发展趋势.在金融领域,无论是投资理财还是借贷放款,风险控制永远是业务的核心基础.对于消费金融来说,其主要服务对象的特点是:额度小.人群大.周期短, ...

  2. JDK命令行工具

    jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数 jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapd ...

  3. 在 jupyter 中添加菜单和自动完成功能

    在 jupyter 中添加菜单和自动完成功能 参考文档http://www.360doc.com/content/17/1103/14/1489589_700569828.shtmlhttp://to ...

  4. ssm+redis整合之redis连接池注入

    package com.tp.soft.redis; import javax.annotation.Resource; import org.springframework.beans.factor ...

  5. Nginx 配置负载均衡

    nginx负载均衡配置,主要是proxy_pass,upstream的使用. 注意问题,多台机器间session的共享问题. 不用session,用户cookie.或者用redis替代session. ...

  6. 第 8 章 容器网络 - 067 - 如何部署 Calico 网络?

    0.准备工作 Calico 是一个纯三层的虚拟网络方案,Calico 为每个容器分配一个 IP,每个 host 都是 router,把不同 host 的容器连接起来. 与 VxLAN 不同的是,Cal ...

  7. HihoCoder - 1142 ,三分入门

    先来说说三分的思想: 从三分法的名字中我们可以猜到,三分法是对于需要逼近的区间做三等分: 我们发现lm这个点比rm要低,那么我们要找的最小点一定在[left,rm]之间.如果最低点在[rm,right ...

  8. pymysql的使用与参数简要

    pymysql.Connect()参数说明 host(str): MySQL服务器地址 port(int): MySQL服务器端口号 user(str): 用户名 passwd(str): 密码 db ...

  9. National Property CodeForces - 875C (拓扑排序)

    大意: n个字符串, 每次操作选出一种字符全修改为大写, 求判断能否使n个字符串字典序非降. 建源点s, 汇点t, s与所有必须转大写的连边, 必须不转大写的与t连边. #include <io ...

  10. python自动化测试入门篇-jemter连接mysql数据库

    jmeter对数据库的操作主要包括以下几个步骤:1.导入mysqlde jdbc的jar包:2.创建数据库连接配置:3.线程组添加jdbc request;4.启动按钮,添加查看结果树 一.准备好驱动 ...