MyBatis-plus 无法获取自增 id 的处理方法(从DB字段设计层面解决问题)
产生情景:
① DB层面:
login表字段设置:login_id,nickname,password,user_id
user 表字段设置:user_id,realname,sex
② 代码层面:
严格遵循格式设定,并在完成持久化以后从数据库里发现有自增 id;
随后使用 mybatis-plus 的 各种查询方法,返回的 user 型数据中 user_id 那里为null,返回的 login 型数据中 login_id 与 user_id 也是 null,尽管在数据库中 user_id 与 login_id 均存在
解决方法:
① 在使用 mybatis-plus 时,每张表的主键 id,只能命名为 "id" 并设为主键
② 这张表中存着的其他表 id 不要写成 xxxx_id ,而是写成 xxxxid,即 “不要有下划线”
③ 修改后的 DB 如下:
login表字段设置:id,nickname,password,userid
user 表字段设置:id,realname,sex
④ 在实体类那里做如下书写,以 user 表为例,注意注解:
@TableName 这个要写此实体类对应的表名
@TableId(value = "数据库id,好像只能写id",type = IdType.AUTO 这是设置为 id 自动生成)
@TableField(“数据库内对应字段”)
以上就是在 mybatis-plus 使用过程中遇到的一些坑
分类:
开发过程中踩过的坑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构