我建的表是這樣的:
create table user
(
id bigint auto_increment comment 'id'
primary key,
username varchar(256) null comment '使用者暱稱',
userAccount varchar(256) null comment '賬號',
avatarUrl varchar(1024) null comment '使用者頭像',
gender tinyint null comment '性別',
userPassword varchar(512) not null comment '密碼',
phone varchar(128) null comment '電話',
email varchar(512) null comment '郵箱',
userStatus int default 0 not null comment '使用者轉態 0 正常',
createTime datetime default CURRENT_TIMESTAMP null comment '建立時間',
updateTime datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新時間',
isDelete tinyint default 0 null invisible comment '是否邏輯刪除 預設0'
)
comment '使用者';
可以看到我的id是bigint 自增,但自測的時候:
@SpringBootTest
class UserServiceTest {
@Resource
private UserService userService;
@Test
void testAdduser() {
User user = new User();
user.setUsername("leoleo");
user.setUserAccount("leoleoleo");
user.setAvatarUrl("https://avatar-static.segmentfault.com/274/037/2740371703-61baf9dec42e4_huge256");
user.setGender(0);
user.setUserPassword("12345678");
user.setPhone("123");
user.setEmail("456");
boolean res = userService.save(user);
System.out.println(user.getId());
Assertions.assertTrue(res);
}
發現資料庫中的資料是這樣的:
我的id變成了161343xxxxxx一長串,,我回去看我的建表語句確實沒問題,之前沒用MyBatisPlus也正常,那麼問題出在MyBatisPlus上,回到MyBatisPlus官方文件一查,果然,MyBatisPlus預設是用的雪花演算法實現也就是下圖中的ASSIGN_ID,如果不想用雪花演算法在yml配置檔案中加上一句
mybatis-plus:
configuration:
db-config:
id-type: auto
就行了。
參考 MyBatisPlus官方文件 https://baomidou.com/pages/22...