MyBatis-Plus的BaseMapper接口提供了insert方法,该方法在插入数据后会自动返回插入的条数。如果数据库表的主键是自增的,MyBatis-Plus会自动将生成的主键值回填到传入的实体对象的ID属性中。 步骤: 配置实体类,使用@TableId注解并设置主键生成策略为IdType.AUTO。 编写Mapper接口,继承BaseMapper。 调用Mapper接口的insert...
1、主键id,这个值不一定叫id, 叫什么都可以,只要是int,自增 2、增加完成以后,是实体类的getId(),就可以获取到,否则一直是1,插入一条数据的时候,影响的是1条。 publicinterfaceDeptMapper extends BaseMapper<Dept>{ } DeptMapper.xml application.yml 方式:(通过mybatis plus生成的不需要编写mapper文件) 1)sel...
如设置了主键 ID,因为主键 ID 必须是唯一的,Mybatis Plus 会先执行查询操作,判断数据是否存在,存在即执行更新,否则,执行插入操作: User user =newUser();// 设置了主键字段user.setId(21L); user.setName("小小哈"); user.setAge(60); user.setGender(1); userService.saveOrUpdate(user); 具体执行 SQ...
<insert id="insertUser" parameterType="com.crush.mybatisplus.entity.User">INSERT INTO tb_user (username,password) VALUES(#{username},#{password});<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">SELECT LAST_INSERT_ID()</selectKey></insert> 解释: 这里设置的Mysql的主键是...
首先要有一张主键为id自增的表,如下:其中主键 id 是自增的,那么我们插入数据时就不用插入 id,它会生成一个自增的 id。当我们在插入一条数据之后,需要获取到这个主键id的值,然后做其他操作,比如记录一下操作历史信息啊之类的。看一下正常的sql语句:但是这种sql执行之后,并不能获取到生成的主键id。如果...
默认情况下按照官方文档的快速开始可以快速集成MybatisPlus。 虽然MB+提供了一些注解,正常情况下除了需要创建一个Mapper继承BaseMapper,其他的不需要配置。 如果我们使用了数据库自增主键并且希望insert方法都返回主键ID,需要配置一下实体类的主键 publicclassWeb_user{@TableId(type=IdType.AUTO)privatelong user_id;priv...
MySQL 中mybatisplus新增返回主键非自增 mybatis返回自增主键原理,目录1.实验对比维度(1)单纯的insert和insertonduplicatekeyupdate(2)selectKey和useGeneratedKeys(3)@Param和parameterType(4)单个和批量(5)keyProperty写法2.基本概念介绍(1)插入或更新SQL(
IdType.INPUT(2)用户输入ID,该类型可以通过自己注册自动填充插件进行填充 IdType.ASSIGN_ID(3)分配ID (主键类型为number或string),默认实现类 (雪花算法) IdType.ASSIGN_UUID(4)分配UUID (主键类型为 string),默认实现类(UUID.replace(“-”,“”)) ...
会不会是因为dao对应的mapper.xml文件,里面的id = inesert的sql语句依然存在,从而覆盖掉了mybatis plus的通用insert,所以没有自动返回主键。 点进去对应mapper.xml文件,果然看到<insert id="insert">的sql语句。删掉该语句,重试mybatis plus的insert方法,这次有主键返回了。