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. 【后端面经-Java】AQS详解

    目录 1. AQS是什么? 2. AQS核心思想 2.1 基本框架 2.1.1 资源state 2.1.2 CLH双向队列 2.2 AQS模板 3. 源码分析 3.1 acquire(int) 3.1 ...

  2. AnyCAD应用——修改指定点,线,面的坐标实现物体移动

    课题需求: 三维模型位置随实物位置改变而动态改变的功能,通过顶点位置坐标的改变,修改模型在显示中的位置. 功能验证:目前,可通过选中顶点手动输入坐标的方式,模拟验证此功能. 首先,点击"文件 ...

  3. 一个C#跨平台的机器视觉和机器学习的开源库

    大家都知道OpenCV是一个跨平台的机器视觉和机器学习的开源库,可以运行在Linux.Windows.Android和Mac OS操作系统上,由C++开发. 今天给大家介绍一个用C#对OpenCV封装 ...

  4. 记一次 .NET 在线客服系统同时支持 SQL Server 和 MySQL 没卡死分析

    前段时间我发表了一系列文章,开始介绍基于 .net core 的在线客服系统开发过程. 有很多朋友一直提出希望能够支持 MySQL 数据库,考虑到已经有朋友在用 SQL Server,我在升级的过程中 ...

  5. PerfView专题 (第十四篇): 洞察那些 C# 代码中的短命线程

    一:背景 1. 讲故事 这篇文章源自于分析一些疑难dump的思考而产生的灵感,在dump分析中经常要寻找的一个答案就是如何找到死亡线程的生前都做了一些什么?参考如下输出: 0:001> !t T ...

  6. 采用PCA算法&KMeans算法来实现用户对物品类别的喜好细分(菜篮子分析)(附带数据集下载)

    实现该项目的流程如下 """ 项目:用户对物品类别的喜好细分(菜篮子分析) 主算法:PCA降维算法 KMeans算法 总思路 1.导包 2.获取数据 3.数据处理 5.特 ...

  7. @ControllerAdvice 注解使用及原理探究

    最近在新项目的开发过程中,遇到了个问题,需要将一些异常的业务流程返回给前端,需要提供给前端不同的响应码,前端再在次基础上做提示语言的国际化适配.这些异常流程涉及业务层和控制层的各个地方,如果每个地方都 ...

  8. jmeter对请求响应结果进行整段内容提取方法

    通过正则表达式提取器,将上一个请求(A请求)响应数据中的整段内容提取,传给下一个需要该提取数据的请求(B请求). 1. 请求接口响应结果 2. 添加正则表达式提取器 设置变量名为"tt&qu ...

  9. go项目实现mysql接入以及web api

    本文为博主原创,转载请注明出处: 创建go项目,并在go项目中接入mysql,将mysql的配置项单独整理放到一个胚子和文件中,支持项目启动时,通过加载配置文件中的值,然后创建数据库连接. 之后使用n ...

  10. IDApython的学习

    IDApython的学习 我的IDA情况:IDA7.7,idapython3.8 这个可以作为文件导入和命令行内输入,我一般习惯命令行 这里要注意是python不是IDC 访问原数据 idc.get_ ...