一、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. python 简单的自定义异常类模版

    class CustomError(Exception): def __init__(self,ErrorInfo): super().__init__(self) #初始化父类 self.error ...

  2. 聊聊 PHP 私有组件以及如何创建自己的 PHP 组件 (转)

    1.私有组件 大多数时候我们使用的都是公开可用的开源组件,但有时候如果公司使用内部开发的PHP组件,而基于许可证和安全方面的问题不能将其开源,就需要使用私有组件.对Composer而言,这是小菜一碟. ...

  3. Python requests代理

    self.ip=requests.get('http:ip获取') self.ip=(self.ip.text).replace('\r','').replace('\n','') print('IP ...

  4. js创建对象的三种方法

    1.使用对象初始化器:{} var person = {....} 2 var person=new object() function person(参数) { this.参数=... } var ...

  5. VNC错误修复⽅方法

    VNC错误修复方法 VNC错误描述 vnc viewer开启后弹窗提示 Could not connect to session bus: Failed to connect to socket /t ...

  6. 在git服务器上创建项目过程及遇到的问题

    一: 登录git服务器,输入用户名,密码等 二: New Project 添加项目 设置组可见,项目名称等. 创建成功的项目可以看到该项目的clone地址,可以通过http,ssh两种方式来获取: 三 ...

  7. 使用js实现思维导图

    使用js实现思维导图 demo:http://rockyren.github.io/mindmaptree/ 源码:http://github.com/RockyRen/mindmaptree/tre ...

  8. Go程序设计

    01 Go基础特性&独有特性

  9. linux软件管理 软件安装

    软件包分类 1) 源代码包   脚本安装包 2) 二进制包   (RPM包,系统默认包) 源码包编译后形成二进制包 JDK的安装 下载jdk的文件解压 tar -zxvf jdk-8u144-linu ...

  10. Win10系列:C#应用控件基础6

    RadioButton控件 在应用程序的开发过程中开发者经常使用多个RadioButton控件来显示一组单选按钮,仅允许用户从中选择一项.RadioButton控件和CheckBox控件的差别在于,用 ...