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. 面试官:讲讲MySql索引失效的几种情况

    索引失效 准备数据: CREATE TABLE `dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAUL ...

  2. P8903 [USACO22DEC] Bribing Friends G 看电影

    P8903 [USACO22DEC] Bribing Friends G 看电影 目录 P8903 [USACO22DEC] Bribing Friends G 看电影 题目描述 输入格式 输出格式 ...

  3. 【WALT】update_task_demand() 代码详解

    目录 [WALT]update_task_demand() 代码详解 代码展示 代码逻辑 用于判断是否进入新窗口的标志位 ⑴ 不累加任务运行时间的条件判断 ⑵ 仍在旧窗口中 ⑶ 进入新窗口 ⑷ 返回值 ...

  4. Unity中的PostProcessBuild:深入解析与实用案例

    Unity中的PostProcessBuild:深入解析与实用案例 在Unity游戏开发中,我们经常需要在构建完成后对生成的应用程序进行一些额外的处理.这时,我们可以使用Unity提供的PostPro ...

  5. 详解Django请求与响应:深入理解Web Http交互的核心机制

    本文深入探讨了 Django 中的请求与响应处理,从 Django 请求和响应的基础知识.生命周期,到 HttpRequest 和 HttpResponse 对象的详细介绍.同时,讨论了 Django ...

  6. pyinstaller打包程序后提示No module named ‘xxxx‘

    解决方法1 1.检查 先在venv环境中安装xxx 报错的这个包 以我的举例 查看settings>project interpreter  (存在对应的包) 解决方法2 2.在xxx.spec ...

  7. CF371D Vessels题解

    思路: 定义一个权值并查集,权值保存这个集合还可以存下多少水. 如果这个集合可以存放的水已经小于要装入的水,就将这个集合与下一个集合合并. 否则,直接把这个集合可以存放的水减去要装入的水的体积. 代码 ...

  8. Windows查询进程和杀死进程

    查询进程 查询进程占用的端口(通过端口查询) netstat -ano |findstr "端口号" 杀死进程 通过进程号查看所属进程名称 tasklist |findstr &q ...

  9. Power AutoMate: 运行脚本程序

    运行脚本文件 操作步骤 配置脚本 点击脚本文件菜单,选中运行python脚本.在其中输入需要徐行的脚本点击保存 之后界面会如下所示: 运行程式 可以看到程式正常运行

  10. cesium中文网

    http://cesium.xin/cesium/cn/Documentation1.62/CallbackProperty.html