欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyBatis Plus入门笔记

程序员文章站 2024-03-23 21:06:34
...

须知

1、有Java开发基础,了解Lambda表达式;
2、至少会使用一种关系型数据库;
3、熟悉Maven;
4、熟悉SpringBoot;
5、最好熟悉MyBatis。

MyBatis-Plus特性:

无侵入,损耗小、强大的CRUD操作
支持Lambda形式调用、支持多种数据库
支持主键自动生成、支持ActiveRecord模式
支持自定义全局通用操作、支持关键词自动转义
内置代码生成器、内置分页插件、内置性能分析插件
内置全局拦截插件、内置SQL注入剥离器

MyBatis-Plus快速入门

  • Lombok安装

    • yml配置
      MyBatis Plus入门笔记
    • 日志的配置,可以输出SQL执行语句和参数、返回结果。
      MyBatis Plus入门笔记
  • 常用注解

    1.数据库名不同,在类上增加@TableName(“mp_user”)
    2.主键ID的驼峰一般无法识别,在主键属性上增加@TableId
    3.属性与字段名不相同,在属性上增加@TableField(“name”)

  • 排除非表字段的三种方式

    1.在实体类使用transient标注成员变量,数据映射时就不会参与序列化
    2.要序列化: 设置该属性位静态变量static
    3.在该属性上面添加@TableFieId(exist=false):exist代表数据库是否有该字段,false代表没有

  • 查询方法

    • 普通查询
      MyBatis Plus入门笔记
    • 多个值查询
      MyBatis Plus入门笔记
    • 条件查询(传Map)
      MyBatis Plus入门笔记
    • 条件构造器查询(通用Mapper)
      MyBatis Plus入门笔记MyBatis Plus入门笔记
    • Select不列出全部字段
    1. 列出要列出的字段
      MyBatis Plus入门笔记
    2. 排除不列出的字段
      MyBatis Plus入门笔记
    • condition的作用
      MyBatis Plus入门笔记

    like(condition,“字段”,value) 判定哪个字段不为空时,进行判定,与原mybatis中的是一个道理,那么在这里,其实跟if test 比较起来,也差不多,if test 需要写两遍 上判定,下判定
    同样的在mp中的写法 写得也算简短了

    • 实体作为条件构造器构造方法的参数MyBatis Plus入门笔记
    • AllEq作用和用法
      MyBatis Plus入门笔记
    • Lambda条件构造器(三种Lambda表达式创建方式)
      MyBatis Plus入门笔记
  • 自定义SQL

    • 自定义SQL的两种方式:

      第一种: 使用自定义注解 的方式实现,在 dao 层的方法上使用@Select (“sql 语句”)的方式编写 sql 语句,会自动映射到数据库表中

      第二种: 使用创建 mapper.xml 的方式来创建 配置文件,通过在配置文件中 创建 sql 语句,并配置 namespace 名称空间,指向有效的 dao 层,从而实现数据的映射

    • 自定义SQL

      MyBatis Plus入门笔记
      MyBatis Plus入门笔记

    • mybatis plusi指定 mapper.xml文件路径(yml写法)
      MyBatis Plus入门笔记

    • 在接口写的改到xml中
      MyBatis Plus入门笔记

  • 分页查询

    • 配置分页配置类
      MyBatis Plus入门笔记
    • 分页查询,page,rows
      MyBatis Plus入门笔记
    • 下面是返回map类型的:
      MyBatis Plus入门笔记
    • 查询总记录数:
      在new Page<>()的第三个参数,如果不查总记录数,第三个参数为false
      类似今日头条那种下拉 不需要总条数量做分页展示

      MyBatis Plus入门笔记
    • 多表联查的一个分页查询接口
      MyBatis Plus入门笔记
      写法依旧是这样
      MyBatis Plus入门笔记
      MyBatis Plus入门笔记
  • 更新(Update)方法

    • 根据id更新数据
      MyBatis Plus入门笔记
    • 默认实体中不为null的字段会出现在set中
      MyBatis Plus入门笔记
  • 删除(delete)方法

    • 根据id删除
      MyBatis Plus入门笔记
    • 根据Map条件删除
      MyBatis Plus入门笔记
    • 根据id批量删除
      MyBatis Plus入门笔记
    • 以条件构造器为参数删除
      MyBatis Plus入门笔记
  • AR模式

    实体类继承Model
    MyBatis Plus入门笔记
    Mapper接口继承BaseMapper
    MyBatis Plus入门笔记
    使用
    MyBatis Plus入门笔记
    MyBatis Plus入门笔记

  • 主键策略

/**
 * 数据库ID自增
 */
AUTO(0),
/**
 * 该类型为未设置主键类型
 */
NONE(1),
/**
 * 用户输入ID
 * 该类型可以通过自己注册自动填充插件进行填充
 */
INPUT(2),
/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
/**
 * 全局唯一ID (idWorker)
 */
ID_WORKER(3),
/**
 * 全局唯一ID (UUID)
 */
UUID(4),
/**
 * 字符串全局唯一ID (idWorker 的字符串表示)
 */
ID_WORKER_STR(5);
  • 使用
    MyBatis Plus入门笔记
  • 全局策略配置
    MyBatis Plus入门笔记
    局部策略优于全局策略
  • MP配置

请看MyBatisPlus官网

  • 通用service

    • 基本方法
      MyBatis Plus入门笔记
    • 批量操作方法
      MyBatis Plus入门笔记
    • 链式调用方法
      MyBatis Plus入门笔记