IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Mybatis-Plus 基础学习笔记 -> 正文阅读

[Java知识库]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?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:15:56  更:2021-08-17 15:17:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 0:18:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码