MybatisPlus

一、注解的使用

1. 主键策略

1.1 源代码

package com.baomidou.mybatisplus.annotation;

public enum IdType {
    AUTO(0),
    NONE(1),
    INPUT(2),
    ASSIGN_ID(3),
    ASSIGN_UUID(4);

    private final int key;

    private IdType(int key) {
        this.key = key;
    }

    public int getKey() {
        return this.key;
    }
}

1.2 使用

  • 通过@TableId注解的 类型属性来设置主键id的增长策略
@TableId(type = IdType.ASSIGN_UUID)
  • 假设我们希望完全全部都使用AUTO策略(数据库ID自增),那么可以在 application.properties中添加如下配置进行修改:
mybatis-plus.global-config.db-config.id-type=auto

1.3 详解

  • ASSIGN_ID(雪花算法)
    如果不设置类型值,默认则使用IdType.ASSIGN_ID策略(自3.3.0起)。该策略会使用雪花算法自动生成主键ID,主键类型为长或字符串(分别对应的MySQL的表字段为BIGINT和VARCHAR)

  • ASSIGN_UUID(排除中划线的UUID)
    如果使用IdType.ASSIGN_UUID策略,并重新自动生成排除中划线的UUID作为主键。主键类型为String,对应MySQL的表分段为VARCHAR(32)

  • AUTO(数据库ID自增)
    对于像MySQL这样的支持主键自动递增的数据库,我们可以使用IdType.AUTO策略。

  • INPUT(插入前自行设置主键值)
    详见:https://www.cnblogs.com/mark5/p/14268122.html

  • NONE(无状态)

2. @Select

将SQL直接注解写在接口上 。 这种方式的优点是对于需求比较简单的系统,效率较高。 缺点是:当SQL有变化时都需要重新编译代码。
使用案例:

@Select("select t.* from hr_recruit_apply t ${filter} ${order}  limit #{current},#{size}")
	public List<RecruitApply> selectCustomPage( @Param("filter") String filter, @Param("order") String order, @Param("current") long current, @Param("size") long size);

3. @TableLogic(delval = “1”, value = “0”)

在属性字段上加@TableLogic注解,使用MyBatis-Plus自带方法删除(在执行BaseMapper的删除方法时,删除方法会变成修改)和查找都会附带逻辑删除功能 (自己写的xml不会)。

加@TableLogic的情况:执行update user set deleted=1 where id =1 and deleted=0。

不加@TableLogic的情况:执行delete from user where deleted=0。

@TableLogic注解参数:value = “” 默认的原值,delval = “” 删除后的值。
@TableLogic(value=“原值”,delval=“改值”)

4. @TableField(updateStrategy = FieldStrategy.IGNORED)

参考
注意:该注解只对使用 Mybatis-Plus ORM 框架进行数据库操作的场景起作用,对于其他框架或原生 SQL 操作无效。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值