当前位置: 代码网 > it编程>编程语言>Java > Mybatis Plus使用@TableId的示例详解

Mybatis Plus使用@TableId的示例详解

2024年08月20日 Java 我要评论
mybatis plus使用@tableid1. @tableid1.1 @tableid 可选类型不添加注解时,默认使用id_worker(3)public enum idtype { /**

mybatis plus使用@tableid

1. @tableid

1.1 @tableid 可选类型

不添加注解时,默认使用id_worker(3)

public enum idtype {
    /**
     * 数据库id自增
     */
    auto(0),
    /**
     * 该类型为未设置主键类型(将跟随全局)
     */
    none(1),
    /**
     * 用户输入id
     * <p>该类型可以通过自己注册自动填充插件进行填充</p>
     */
    input(2),
    /* 以下3种类型、只有当插入对象id 为空,才自动填充。 */
    /**
     * 全局唯一id (idworker)
     */
    id_worker(3),
    /**
     * 全局唯一id (uuid)
     */
    uuid(4),
    /**
     * 字符串全局唯一id (idworker 的字符串表示)
     */
    id_worker_str(5);
    }

1.2 @tableid(value = “id”,type= idtype.auto)

使用条件:
id 类型可以是interger/long;
数据库主键id,mysql必须设置自增主键,postgresql必须设置自增序列(例如:主键类型 serial4),才能够使用此注解。

1.3 @tableid(value = “id”,type= idtype.id_worker)

使用条件:
id 类型必须是long;
因为id_worker 生成的snowflakeid 是19位的全局id。

2. 非主键字段添加@tableid

如果一张表只是一个关联表,非主表,只保存了主表的id。但任然需要通过这个字段对关联表进行crud。
此时只需要在关联表的该字段上加@tableid ,即可使用 mybatis-plus mapper自带的方法;

import com.baomidou.mybatisplus.annotation.tableid;
import com.baomidou.mybatisplus.annotation.tablename;
import lombok.data;
import java.util.date;
@data
@tablename("fbr_basic_info")
public class fbrbasicinfoentity {
    @tableid
    private integer fbrinfoid;
    private string fbrtype;
    private string fbrtypecode;
    }

使用示例
查询

fbrbasicinfoentity basicinfoentity = fbrbasicinfomapper.selectbyid(fbrinfoid);

新增

 fbrbasicinfoentity basicinfoentity = fbrassemble.trans(basicinfovo);
fbrbasicinfomapper.insert(basicinfoentity);

修改

fbrbasicinfomapper.updatebyid(basicinfoentity);

亲测可用。

补充:mybatis-plus中的@tableid

mybatis-plus中的@tableid

简介

mybatis plus 中,@tableid 注解是用于标记实体类中的主键字段。它可以更方便地处理主键相关的操作,如自动填充主键值或识别主键字段。

用法

public class user {
    @tableid(value = "user_id", type = idtype.auto)
    private long userid;
    ...
}

用户表 user,其中主键字段名为 user_id,这个主键是数据库自增

value:指定数据库表中的主键字段名称。如果实体类的属性名与数据库表中的主键字段名相同,则可以省略此属性。
type:指定主键生成策略。

主键生成策略

  • idtype.auto:表示主键自增,适用于数据库支持的自增主键,如 mysqlauto_increment
  • idtype.assign_id:使用雪花算法(snowflake algorithm)生成主键。
  • idtype.assign_uuid:生成一个不包含中划线的 uuid 作为主键。
  • idtype.input:表示主键值需要手动输入或设置。

结束

到此这篇关于mybatis plus使用@tableid的文章就介绍到这了,更多相关mybatis plus使用@tableid内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com