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的定义和自增创建方法见链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!