mybatis-plus 执行insert(),实体的id自动更新

mybatis-plus 在执行baseMapper.insert()的时候,会将传进去的实体的id自动更新为插入的主键值。

业务代码:

@Transactional(rollbackFor = Exception.class)
@Override
public String saveCourseInfo(CourseInfoForm courseInfoForm) {
   

        //保存课程基本信息
        Course course 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mybatis-plusinsert和save都是用于向数据库中插入数据的方法。 其中,insert方法是直接插入一条数据,需要手动设置每个字段的值,例如: ``` User user = new User(); user.setName("张三"); user.setAge(18); userMapper.insert(user); ``` 而save方法则是先判断该数据是否已经存在于数据库中,如果存在则更新数据,如果不存在则插入数据。使用save方法时,需要先设置主键值,例如: ``` User user = new User(); user.setId(1L); user.setName("张三"); user.setAge(18); userMapper.save(user); ``` 需要注意的是,如果使用save方法时没有设置主键值,则会抛出异常。另外,save方法的返回值是一个boolean类型,表示操作是否成功。 ### 回答2: Mybatis-plus(以下简称MP)是在Mybatis基础上进行的增强和扩展,提供了更加便捷的操作数据库的方式。在MP中,对于插入数据的操作,提供了两种方法:insert和save。 insert方法是通过创建一个实体对象来插入数据。例如,我们可以通过以下代码向user表插入一条数据: ``` User user = new User(); user.setUserName("test"); user.setPassword("123456"); user.setAge(18); user.setEmail("test@test.com"); userMapper.insert(user); ``` 其中,createUser方法创建一个User对象,然后设置User对象的参数,最后通过insert方法将User对象插入数据库中。 而save方法则不需要自己手动创建实体对象,而是直接在方法中传递一个Map类型的参数。例如,我们可以通过以下代码向user表插入一条数据: ``` Map<String, Object> map = new HashMap<>(); map.put("user_name", "test"); map.put("password", "123456"); map.put("age", 18); map.put("email", "test@test.com"); userMapper.save(map); ``` 可以看到,save方法只需要传递一个Map类型的参数即可,而不需要手动创建实体对象。 在使用MP进行数据插入的时候,我们需要注意以下几点: 1. 对于insert方法,我们需要手动创建实体对象,因此需要对实体对象的属性进行赋值操作,且在进行数据插入操作之前需要先将实体对象的主键进行设置。而对于save方法,我们不需要进行实体对象的创建,同时也不需要进行主键的设置。 2. 在进行数据插入操作的时候,我们需要注意实体对象中的属性名称和数据库表中的字段名称的对应关系,否则数据插入操作将可能会失败。 3. 在进行数据插入操作的时候,我们需要注意实体对象中的属性类型和数据库表中字段类型的对应关系,否则也会导致数据插入操作失败。 综上所述,insert和save方法都可以用来进行MP中的数据插入操作,但是需要根据实际情况选择最合适的方法。同时,在进行数据插入操作时,需要注意实体对象中属性与数据库表中的字段名称和类型的对应关系,以保证数据插入操作的成功。 ### 回答3: Mybatis-plus是一个基于Mybatis的增强工具,在Mybatis的基础上加入了很多实用的功能,其中就包括对实体类的操作。在Mybatis-plus中,针对实体类的插入操作有两个方法:insert和save。 insert方法是一个BaseMapper类中提供的方法,它的作用是向数据库中插入一条记录,它的返回值是一个整型的数据,代表着插入记录的数量。insert方法可以接收一个实体对象作为参数,这个实体对象会被映射为对应的数据表中的一条记录。在insert的过程中,如果实体对象中某个字段为null,那么这个字段不会插入到数据库中。 save方法也是一个BaseMapper类中提供的方法,它和insert方法的功能有点相似,也是向数据库中插入一条记录,它的返回值也是一个整型的数据,代表着插入记录的数量。save方法可以接收一个实体对象作为参数,这个实体对象会被映射为对应的数据表中的一条记录。在save的过程中,如果实体对象中某个字段为null,那么这个字段会插入到数据库中,但对应的列值会为null。与insert方法的区别是,如果实体对象的主键已经存在,那么save方法会更新数据表中对应的记录,而不是插入一条新的记录。 总的来说,insert和save方法都能实现对数据表的插入操作,不过在处理主键冲突时有所不同。在实际使用中要根据需要选择合适的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值