Mybatis Plus的@TableId标签

@TableId
1、如果数据库字段设成user_id
在初始生成后,在代码中会变成userId,不会设置成主键
使用**@TableId(value=“user_id”,type = IdType.AUTO)**注解

“value”:设置数据库字段值
“type”:设置主键类型、如果数据库主键设置了自增建议使用“AUTO”

type有六种类型类型,最下面三个只有插入主键为空时,才会自动填充

类型                            解释
AUTO                         数据库自增ID                                                类型可以是Interger/Long;
NONE                         数据库未设置主键类型(将会跟随全局)
INPUT                        用户自己输入ID
ID_WORKER             全局唯一ID                                                    类型必须是Long
UUID                          全局唯一ID                                                    类型是字符串
ID_WORKER_STR    idWorker 的字符串表示                                 类型是字符串

 

ID_WORKER 生成的snowflakeId 是19位的全局id

 

注意:

jeecg-boot框架的id默认是字符串类型

一、数据库id改成自增的长整型做id,则自动生成的增删改查接口要进行改造:

1、实体类改造:(AUTO的意思是数据库自动填充id,不用接口实现id保存)

/**id*/
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;

2、接口类改造:

(1)、queryById和delete接口需要把参数类型改成Long

(2)、deleteBatch接口需要进行改造:

        String[] str=ids.split(",");
        Long [] arr = new Long [str.length];
        for(int i=0; i<str.length; i++) {
            arr[i] = Long.parseLong(str[i]);
        }
        this.dataWaterSiteHourService.removeByIds(Arrays.asList(arr));
        return Result.ok("批量删除成功!");

 二、数据库id改成自增的整型做id,改造:

1、实体类改造:

/**id*/
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private java.lang.Integer id;

2、接口类改造:

(1)、queryById和delete接口需要把参数类型改成Integer

(2)、deleteBatch接口需要进行改造:

        String[] str=ids.split(",");
        Integer [] arr = new Integer [str.length];
        for(int i=0; i<str.length; i++) {
            arr[i] = Integer.parseInt(str[i]);
        }

        this.settingService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.ok("批量删除成功!");

 

数据库id的定义和自增创建方法见链接

posted @ 2022-05-27 17:40  JackGIS  阅读(817)  评论(0)    收藏  举报