亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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 '創建時間',

? ? CONSTRAINT manager_fk FOREIGN KEY (manager_id)

? ? ? ? REFERENCES user (id)

)? ENGINE=INNODB CHARSET=UTF8;

老師,有個疑問,在定義表結構時沒有指定id為自增長,當執行

@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("影響記錄數:"?+?rows);
}

執行插入數據代碼后,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

影響記錄數:1


正在回答

2 回答

? ? ? ?同學,如果自己沒有配置主鍵策略,MP的默認主鍵策略是基于雪花算法的自增主鍵。在MP的源碼中有雪花算法的實現代碼。1134646077845229570這個值是MP框架通過代碼調用計算出來的值。

2 回復 有任何疑惑可以回復我~
#1

qq_釋懷_0

我這個沒設置主鍵策略啊,MP也沒管我啊,Junit直接報錯了,怎么解決啊
2019-12-09 回復 有任何疑惑可以回復我~
#2

qq_釋懷_0

按照您的視頻打的,但是報錯了: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.mp.entity.User' with value 'cf3f71e3a5570906f20ce144af7b7515' Cause: java.lang.IllegalArgumentException: argument type mismatch
2019-12-09 回復 有任何疑惑可以回復我~
#3

老猿 回復 qq_釋懷_0

同學,你用的是最新的mp3.3.0吧,最新版本的默認主鍵策略變更了。自3.3.0開始,默認使用雪花算法+UUID(不含中劃線)。給你生成的主鍵實際是個字符串,所以你數據庫和實體中都應該是字符串,不然報錯。
2019-12-09 回復 有任何疑惑可以回復我~

我這個沒設置主鍵策略啊,MP也沒管我啊,Junit直接報錯了,怎么解決啊

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

ID值是從哪里得到的?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號