这篇文章主要介绍“MybatisPlus使用@TableId主键id自增长无效如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MybatisPlus使用@TableId主键id自增长无效如何解决”文章能帮助大家解决问题。
问题情况:
在使用 @TableId(type = IdType.AUTO)之后添加的id数字特别大
原因:
因为在第一次使用的时候没有加注解 所以mybatis自动生成了一个特别大的数字
当我们第二次加上注解之后他的id实际上还是第一次那个特别大的数字+1
解决方法
修改表的自动添加值再添加
因为第一次添加的id值特别大我就把那一行给删了
然后改了自增长的数字
如图所示
修改之后就好了
package com.tong.pojo;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;@Data@NoArgsConstructor@AllArgsConstructor@TableName("tb_user")public class User { @TableId(type = IdType.AUTO) //指定id类型为自增长 private Long id; private String user_name; private String password; private String name; private Integer age; private String email;}
package org.example;import com.tong.MyApplication;import com.tong.mapper.UserMapper;import com.tong.pojo.User;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes= MyApplication.class)public class TestUserMapper { @Autowired private UserMapper userMapper; 上面这一行报错是正常现象 @Test public void test(){ User user = new User(); user.setEmail("12345.com"); user.setAge(20); user.setUser_name("caocao1"); user.setName("曹操1"); user.setPassword("123456"); //user.setAddress("北京"); int insert = userMapper.insert(user); System.out.println(insert); System.out.println(user.getId()); }}
关于“MybatisPlus使用@TableId主键id自增长无效如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。