Mybatis_plus笔记

在使用mybatis_plus的过程中我们可以明显的感受到他的强大之处。它就像是Mybatis和Jpa的结合体一样,它拥有jpa对单表的各种CRUD操作以及强大的条件构造器,同时它还具备着mybatis原有的灵活性,实在是我们的不二之选。
mybatis_plus官方文档地址:https://mp.baomidou.com/

使用

使用mybatis_plus需要导入的依赖是

 <dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>Latest Version</version>
</dependency>

其他的依赖与在使用mybatis时一致即可,除了将mybatis的依赖更改为这个。
然后是添加注解,和使用mybatis时是相同的方式添加注解。如在启动类上的@MapperScan(“com.crm.mapper”)一样。但mybatis-plus在实体类上有与mybatis不同的地方,mybatis-plus在实体类有一些注解可以帮助我们便捷的完成实体类与数据库之间的映射关系。

一,实体类注解

最常用到的有三个:

@TableName(value =“table_name”)

当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名。

@TableId(value=“t_id”)

指定实体类的属性为对应的主键,有六种主键策略:
1,IdType.AUTO //主键自增
2,IdType.NONE //默认状态,该类型为未设置主键类型
3,IdType.INPUT // 用户输入ID
4, IdType.ID_WORKER //全局唯一ID (idWorker)
5,IdType.UUID //全局唯一ID (UUID)
6,IdType.ID_WORKER_STR //字符串全局唯一ID (idWorker 的字符串表示)

@TableField注解

1,@TableField(value = “”) //用来解决数据库中的字段和实体类的字段不匹配问题
2,@TableField(exist = false) //用来解决实体类中有的属性但是数据表中没有的字段

二,配置日志输出

作为一个程序员,程序报错是很正常的事,对吧。而在报错的时候如果能获取到比较详细的程序所执行sql的信息,那对我们的找错改正是很有帮助的。而mybatis-plus中的日志输出就可以满足我们的需要,其输出的日志信息比mybatis的日志详细很多,配置它却只需要在application中添加一行代码即可

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

效果图

三,Mapper和service以及ServiceImpl

1,mapper

在使用mybatis-plus的项目中编写mapper接口时需要继承BaseMapper

2,service

service需要继承IService

3,serviceImpl

serviceImpl需要继承ServiceImpl<ModuleMapper, Modules>

当我们写好这些注解后在controller中如果想调用单表的增删改查的话便可以直接用mapper或者serviceImpl来调用mybatis-plus封装好的方法。

四,条件查询器wrapper

在使用mybatis-plus进行多条件查的时候我们需要了解wrapper这个东西,他会将我们的条件进行处理后添加在sql语句的后面,不仅仅是mybatis-plus中封装好的查询方法中可以用,在我们自定义的方法中也都可以使用。接下来我便介绍一下wrapper。

首先我们需要先声明wrapper。

wrapper有两个子类QueryWrapper和UpdateWrapper
一般查询是使用QueryWrapper,修改是使用UpdateWrapper。不建议直接使用wrapper。声明wrapper很简单就和上图一样。

使用wrapper

查询条件是有很多种的比如相等,大于,模糊,,,等等。
那在用wrapper时怎么区分各种条件呢,很简单,wrapper有许多个方法分别代表了这些条件。
如eq / /相等

ne //不等

诸如此类的还有很多大家可以直接访问mybatis-plus的官网来查看

自定义查询中wrapper的使用
1,用注解

2,用xml

Mybatis_plus笔记的更多相关文章

  1. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  7. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  8. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  10. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

随机推荐

  1. Spring 中的 Bean

    前言 欢迎来到本篇文章,鸽了好久了,今天继续写下 Spring 的内容:Spring 中 Bean 的基本概念.基本写法和 3 种实例化 Bean 的方式等. 什么是 Bean? 我们回顾下,什么是 ...

  2. uniapp微信小程序转支付宝小程序踩坑(持续更新)

    首先第一个,真有被折磨到! // 微信正常使用,支付宝不行 <image src="https://static.dabapiao.com/images/coupon-index.pn ...

  3. 用postman模拟“授权代码授予”模式下获取Azure的用户信息(UserInfo)

    用postman模拟"授权代码授予"模式下获取Azure的用户信息(UserInfo) 1. 准备参数: 图1: 图2: 2. 调用: 点击按钮"Get New Acce ...

  4. 体细胞突变检测分析流程-系列1( WES&Panel)

    Sentieon●体细胞变异检测-系列1   Sentieon 致力于解决生物信息数据分析中的速度与准确度瓶颈,通过算法的深度优化和企业级的软件工程,大幅度提升NGS数据处理的效率.准确度和可靠性. ...

  5. 【Redis】模糊查询

    Redis模糊查询 1.支持的通配符*.?.[] 2.通配符* a.单个 * 模式 # 查询所有的key keys * b.双 * 模式,匹配任意多个字符 # key中含有rich的key keys ...

  6. 【Springboot】项目启动后执行特定方法

    Springboot项目启动后执行特定方法 Springboot给我们提供了两种"开机启动"方式:ApplicationRunner和CommandLineRunner. 这两种方 ...

  7. kali下对压缩包的压缩与解压(转)

    kali linux 压缩文件解压缩命令(包含7z) tar tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包 ...

  8. 用虚拟机配置Linux实验环境

    我们平时经常需要利用VMware搭建Linux实验环境,下面我将搭建步骤整理了一下. 安装虚拟机 系统镜像:CentOS-7-x86_64-Everything-1708.iso 用VMware安装系 ...

  9. Swithch反汇编(四种)

    ------------恢复内容开始------------ Switch语法格式 Switch(表达式) { case 常量表达式1: 语句; break; case 常量表达式2: 语句; bre ...

  10. Codeforces Round #888 (Div. 3) A-G

    比赛链接 A 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; bool solve() { i ...