結論:mybaties plus會將庫里數據自動回顯到 要插入的數據上
測試表格
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- 表結構
DROP TABLE IF EXISTS `t_stu`;
CREATE TABLE `t_stu` (`id` int NOT NULL COMMENT 'id',`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`class_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '課程名',`teacher` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '老師',`score` decimal(10, 2) NULL DEFAULT NULL COMMENT '分數',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;-- 庫1數據
INSERT INTO `t_stu` VALUES (1, 'andy', 10, '男', '語文', '虛竹', 100.00);
YML
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/sky_take_out?characterEncoding=utf-8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=falseusername: rootpassword: root
實體類
package com.suyan.code.test.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;import java.io.Serializable;
import java.math.BigDecimal;
@TableName("t_stu")
public class Stu extends Model<Stu> {@TableId(value = "id",type = IdType.AUTO)private Integer id;private String name;private Integer age;private String className;private BigDecimal score;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getClassName() {return className;}public void setClassName(String className) {this.className = className;}public BigDecimal getScore() {return score;}public void setScore(BigDecimal score) {this.score = score;}// getter...// setter...
}
控制層(結論)
/** 核心:id自增情況下,庫里id會回顯到 要插入的那個實體上* 結論:在id字段存在,type = IdType.AUTO時,* 插入數據之后。數據的id是可以自動回顯到 插入的實體id上的*** 備注:如刪除type = IdType.AUTO* 則會導致自增的數據異常(仍然會把異常的id回顯)* **/// stuMapper.insert(stu); //可以生效 id=1
// System.out.println("stu.getId() = " + stu.getId());// stuService.save(stu); //生效 id=2
// System.out.println("stu.getId()2 = " + stu.getId());// stuServiceImpl.save(stu); //生效 id=3
// System.out.println("stu.getId()3 = " + stu.getId());// stu.insert(); //生效 id=3
// System.out.println("stu.getId()4= " + stu.getId());//干掉字段上的自增(會導致自增的字段數據異常)!!!!!!!!!!!!stuMapper.insert(stu); //能回顯,但是id異常 stu.getId() = -738127871System.out.println("stu.getId() = " + stu.getId());