MyBatisPlus理解

MyBatisPlus博客 1 (重要) :

学习MyBatis-Plus3这一篇就够了_轻松的小希的博客-CSDN博客_mybatisplus3

MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。实现这个需求的方法不止一种,在sql层面也可以做到,在建表的时候也可以指定默认值。

mybatisPlus属性自动填充配置之MetaObjectHandler接口实战_张子行的博客的博客-CSDN博客_metaobjecthandler

MyBatisPlus博客 2:

mybatis-plus超详细讲解_?Handsome?的博客-CSDN博客_mybatisplus

MyBatisPlus官方文档:(重要)

CRUD 接口 | MyBatis-Plus

mybatis-plus自定义sql分页:

注意mapper中的参数需要加@Param("xxxx")

mybatis-plus自定义sql分页_代码小菜的博客-CSDN博客_mybatisplus 自定义分页

mybatis-plus save后获取保存后的主键:  直接getid即可

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

关闭开启MyBatisPlus的sql日志:

开启打印
Mybatis-plus 需要通过下面的方式开启控制台 SQL 日志打印

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

---------------------------------------------------------------
关闭打印
在生产环境,不想打印 SQL 日志,可以通过下面的配置关闭。

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl

注解

@TableId:它对应的是将数据库的主键进行映射。如果没有这个注解,调用mybatis-plus中的一些根据主键id进行操作的方法,就会导致方法无法找到主键,使得方法所要进行的操作无效。

@TableField:映射数据库中的其他普通字段,其注解中有一个属性exist,如果将其设置为false,则默认这个属性不经过数据库字段的映射。

@TableField和@TableId的意义主要是用到其中括号中配置的含义,如果已经在其他配置中有生效的,可以不用注解@TableField和@TableId。(暂时个人理解)

@TableLogic 逻辑删除的注解

步骤 1: 配置com.baomidou.mybatisplus.core.config.GlobalConfig$DbConfig

  • 例: application.yml(逻辑删除有默认值可以不配置这些
mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

步骤 2: 实体类字段上加上@TableLogic注解

@TableLogic
private Integer deleted;

使用逻辑删除后,查询(不需要额外条件)会排除is_delete=1,删除自动会走逻辑删除,表字段需要设置is_delete的默认值为0

pagehelper分页插件和mybatisplus分页插件冲突导致mybatisplus分页查询报错的兼容解决办法

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.github.jsqlparser</groupId>
                    <artifactId>jsqlparser</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

简化myabtisplus代码:

Wrappers

MyBatis-Plus 提供了 Wrappers 类,它是一个静态工厂类,用于快速创建 QueryWrapperUpdateWrapperLambdaQueryWrapper 和 LambdaUpdateWrapper 的实例。使用 Wrappers 可以减少代码量,提高开发效率。

示例

// 创建 QueryWrapper

QueryWrapper<User> queryWrapper = Wrappers.<实体>query();

queryWrapper.eq("name", "张三");

// 创建 LambdaQueryWrapper

LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.<实体>lambdaQuery();

lambdaQueryWrapper.eq(User::getName, "张三");

// 创建 UpdateWrapper

UpdateWrapper<User> updateWrapper = Wrappers.<实体>update();

updateWrapper.set("name", "李四");

// 创建 LambdaUpdateWrapper

LambdaUpdateWrapper<User> lambdaUpdateWrapper = Wrappers.<实体>lambdaUpdate();

lambdaUpdateWrapper.set(User::getName, "李四");

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值