Mybatis-Plus 基础学习笔记

目录

Mybatis-plus 是什么:

Mp 入门:

Mp 添加操作:

MP 修改操作:

MP 乐观锁:

MP 查询操作:

MP 删除操作:

MP 复杂查询:


Mybatis-plus是什么:

Mybatis-plus简称MP,是mybatis的增强工具,在mybatis上只做增强不做改变,为简化开发,提高效率而生

Mp入门:

1.   创建数据库,创建数据库表

CREATE DATABASE mybatis-plus;

USE `mybatis-plus`;

CREATE TABLE USER

(

    id BIGINT(20)NOT NULL COMMENT '主键ID',

    NAME VARCHAR(30)NULL DEFAULT NULL COMMENT '姓名',

    age INT(11)NULL DEFAULT NULL COMMENT '年龄',

    email VARCHAR(50)NULL DEFAULT NULL COMMENT '邮箱',

    PRIMARY KEY (id)

);

INSERT INTO USER (id, NAME, age, email)VALUES

(1, 'Jone', 18, 'test1@baomidou.com'),

(2, 'Jack', 20, 'test2@baomidou.com'),

(3, 'Tom', 28, 'test3@baomidou.com'),

(4, 'Sandy', 21, 'test4@baomidou.com'),

(5, 'Billie', 24, 'test5@baomidou.com');

SELECT * FROM USER;

2.   创建springboot工程:mp_study

Springboot版本改为2.2.1版本

3.    引入mybatis-plus和相关依赖:

<!--mybatis-plus-->

        <dependency>

            <groupId>com.baomidou</groupId>

            <artifactId>mybatis-plus-boot-starter</artifactId>

            <version>3.3.1</version>

        </dependency>

        <!--mysql依赖-->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

        </dependency>

        <!--lombok用来简化实体类:

        用注解代替手写get,set方法,使用前记得在idea中先安装lombok插件

        -->

        <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <optional>true</optional>

        </dependency>

4.     配置数据库信息

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/mybatis-plus?serverTimezone=GMT%2B8

spring.datasource.username=root

spring.datasource.password=密码

5.     创建实体包entity以及类User

6.     创建包mapper,包下创建接口UserMapper(核心部分

7.     在启动类上添加注解MapperScan(“mapper路径”)

 8.     在测试类中添加如下:

9.     MP查看sql输出日志:

#mybatis日志

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

Mp添加操作:

mp主键策略:

使用前提:在建表的时候没有设置主键自增

1.     默认assign_id,使用了雪花算法

2.     设置主键自增策略:auto

添加配置信息:

#全局设置主键生成策略

mybatis-plus.global-config.db-config.id-type=auto

MP 修改操作:

MP自动填充:

对于一些属性值的设置,不用每次都用相同方式去填充。利用mybatis-plus自动填充可以实现。

1.    在表中增加两个字段create_time,update_time

2.    在实体类中加上对应属性

 3.   在实体类要进行自动填充属性添加注解

4.    创建类用于实现接口,再实现其中两个方法,一个方法添加执行,一个方法修改执行

测试:

添加一个值,查看创建和修改时间是否自动填充。

MP乐观锁:

乐观锁: 很乐观,拿数据时认为别人不会修改,所以不会上锁。

在更新的时候会判断在此期间别人有没有去更新这个数据,使用版本号机制

Mp实现乐观锁步骤:

1.    在表添加字段version作为版本号,在表对应实体类添加版本号属性

2.    在实体类版本号属性上添加@version注解

3.    配置初始值:

4.     配置mp乐观锁插件,创建配置类config,再创建类MyConfig

@Configuration  //配置类注解

@MapperScan("com.ao.mp_study.mapper")

public class MpConfig {

    //配置乐观锁插件

    @Bean

    public OptimisticLockerInterceptor optimisticLockerInterceptor() {

        return new OptimisticLockerInterceptor();

    }

}

MP查询操作:

1.  多个id批量查询:selectBatchIds(Arrays.asList(1,2,3))

 2.  条件查询:  selectByMap(map)

3.   分页查询:  selectPage()

在配置类中配置分页插件

编写分页代码

创建Page对象,传入两个参数(当前页,每页记录数)

MP 删除操作:

根据id删除: deleteById()

批量删除:

 条件删除:deleteByMap(map)

逻辑删除

使用场景:

可以进行数据恢复;有关联数据,不便删除

在表中添加字段,作为逻辑删除标志,每次删除时候,修改标志位

0 没有删除  1  已经删除

  1. 表中添加字段delete作为逻辑删除标志,对应实体类加上属性
  2. 在实体类属性上添加注解@TableLogic

 配置:添加逻辑删除初始值为0表示没删除

MP 复杂查询:

条件构造器和常用接口

Wrapper介绍:单词意思,封装,包装,mp中wrapper封装了很多复杂的查询方法。

setSqlSelect       设置 SELECT 查询字段

where                 WHERE 语句,拼接 + WHERE 条件

and                     AND 语句,拼接 + AND 字段=值

andNew              AND 语句,拼接 + AND (字段=值)

or                        OR 语句,拼接 + OR 字段=值

orNew                OR 语句,拼接 + OR (字段=值)

eq                      等于=

allEq                  基于 map 内容等于=

ne                      不等于<>

gt                       大于>

ge                      大于等于>=

lt                        小于<

le                       小于等于<=

like                    模糊查询 LIKE

notLike              模糊查询 NOT LIKE

in                        IN 查询

notIn                  NOT IN 查询

isNull                 NULL 值查询

isNotNull IS       NOT NULL

groupBy            分组 GROUP BY

having               HAVING 关键词

orderBy             排序 ORDER BY

orderAsc            ASC 排序 ORDER BY

orderDesc         DESC 排序 ORDER BY

exists                EXISTS 条件语句

notExists           NOT EXISTS 条件语句

between            BETWEEN 条件语句

notBetween       NOT BETWEEN 条件语句

addFilter           自由拼接 SQL

last                    拼接在最后,例如:last(“LIMIT 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大男孩哟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值