ID值是從哪里得到的?
CREATE TABLE user (
? ? id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主鍵',
? ? name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
? ? age INT(11) DEFAULT NULL COMMENT '年齡',
? ? email VARCHAR(50) DEFAULT NULL COMMENT '郵箱',
? ? manager_id BIGINT(20) DEFAULT NULL COMMENT '直屬上級id',
? ? create_time DATETIME DEFAULT NULL COMMENT '創(chuàng)建時間',
? ? CONSTRAINT manager_fk FOREIGN KEY (manager_id)
? ? ? ? REFERENCES user (id)
)? ENGINE=INNODB CHARSET=UTF8;
老師,有個疑問,在定義表結構時沒有指定id為自增長,當執(zhí)行
@Test public?void?insert()?{ ????User?user?=?new?User(); ????user.setName("張三"); ????user.setAge(20); ????user.setManagerId(1088248166370832385L); ????user.setCreateTime(LocalDateTime.now()); ????int?rows?=?userMapper.insert(user); ????System.out.println("影響記錄數(shù):"?+?rows); }
執(zhí)行插入數(shù)據(jù)代碼后,1134646077845229570這個id值是從哪里來的?
DEBUG==>? Preparing: INSERT INTO user ( id, name, age, manager_id, create_time ) VALUES ( ?, ?, ?, ?, ? )?
DEBUG==> Parameters: 1134646077845229570(Long), 張三(String), 20(Integer), 1088248166370832385(Long), 2019-06-01 10:21:20.15(Timestamp)
DEBUG<==? ? Updates: 1
影響記錄數(shù):1
2019-06-01
? ? ? ?同學,如果自己沒有配置主鍵策略,MP的默認主鍵策略是基于雪花算法的自增主鍵。在MP的源碼中有雪花算法的實現(xiàn)代碼。1134646077845229570這個值是MP框架通過代碼調用計算出來的值。
2019-12-08
我這個沒設置主鍵策略啊,MP也沒管我啊,Junit直接報錯了,怎么解決啊