Mybatis-plus入门

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
一般的springboot开发 pojo-mapper-service-controller 引入mybatis-plus则不同,不用再编写繁琐的crud代码和

新建springboot项目,其中的maven配置

   <dependencies>
<!--        数据库-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
<!-- lombok-->
        <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        </dependency>
<!--mybatis plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

编写配置文件连接数据库 application.properties

# Mysql 85多了个配置 serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis-plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

在idea中连接数据库
在这里插入图片描述
根据数据库编写pojo类
在这里插入图片描述

编写mapper包 UserMapper接口 要继承BaseMapper<泛型类对象,编写哪个类的接口就写那个类名>

在这里插入图片描述

(重要)在主函数中添加Mapperscan扫描mapper包

在这里插入图片描述

测试类

由于UserMapper接口继承了BaseMapper类,就可以用其中的方法
在这里插入图片描述

结果

在这里插入图片描述

注意其中没有编写任何一条sql语句

配置日志

在这里插入图片描述

输出

在这里插入图片描述

-----------------------------------------------------------------------------------------------------------------------

插入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主键生成策略

分布式系统唯一id生成 :https://blog.youkuaiyun.com/lianghecai52171314/article/details/120875656
(上面id自动生成的原因)
Twitter的snowflake算法(雪花算法)
MyBatisPlus主键自动赋值使用的是这个算法
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。

配置主键自增方式(数据库表中一定要设置主键自增,不然会报错)

在实体类中添加注解 默认为ID_WORKER
在这里插入图片描述
IdType为枚举类,字段对应的表示如下
在这里插入图片描述

-----------------------------------------------------------------------------------------------------------------------

更新

在这里插入图片描述
此处setID要写需要更新的那个id位置。所有的sql都是自动动态配置的。

自动填充

阿里巴巴开发手册规定:所有数据库表要有:gmt_create创建时间 gmt_modified 修改时间 需要自动化实现

方式一:数据库级别(工作中无法用,一般不允许操作数据库)

1、在表中新增字段
在这里插入图片描述
2、再次测试插入方法,需要在实体类添加这两个字段
在这里插入图片描述
现在更新时间会自动地改变

方式二:代码级别

1、 把之前写的数据库全去掉,只留下两个字段名字,通过代码方式改变时间
在这里插入图片描述
2、要加入注解
在这里插入图片描述
在这里插入图片描述
3、编写处理器来处理注解
在这里插入图片描述
4、测试插入修改时间,发现都自动更新了
在这里插入图片描述

-----------------------------------------------------------------------------------------------------------------------

查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
条件查询要使用selectByMap(map); 把要查询的条件放进一个map集合中进行查询。map集合中key是数据库的字段,value是查询条件。

-----------------------------------------------------------------------------------------------------------------------

分页查询

配置拦截器插件
这是3.0版本的,3.4版本更新了,详情去官网查看
在这里插入图片描述
在这里插入图片描述
会在分页查询前,先查询总数。
在这里插入图片描述

-----------------------------------------------------------------------------------------------------------------------

删除

在这里插入图片描述

逻辑删除

物理删除:从数据库中直接移除
逻辑删除:在数据库中没有被移除,而是通过一个变量让它失效,查询不到
加个字段delete,逻辑删除时,让delete= 1,默认为0,查询时带deleted条件查询,deleted is not 1
应用场景:管理员可以看见用户删除的数据,数据库中还在,但是用户查询不到了

1、数据库中添加字段
在这里插入图片描述
2、在实体类中添加字段和注解
在这里插入图片描述
3、在config中添加插件
在这里插入图片描述
4、在application.properties中配置
在这里插入图片描述
5、测试
逻辑删除语法和普通删除一样,但是本质是更新操作,数据库执行语句是update,数据库记录不会消失。
在这里插入图片描述
现在已经查询不到了,查询时候回自动拼接delete条件,根据properties中设置的值查询
在这里插入图片描述

以上的crud必须精通掌握!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值