Mybatis新增数据后,马上返回新增数据的id

注意mybatisPlus没有实现该功能,还是靠传统方式。

注意:方法名要有唯一性

1.在Mapper.xml中的添加方法中加:

useGeneratedKeys="true" keyProperty="id"
例如:

    <insert id="addChapters" parameterType="com.mbyte.easy.chapters.entity.Chapters" 
    useGeneratedKeys="true" keyProperty="id">
    insert into t_chapters (tutorials_name, tutorials_content, create_time, update_time)
    values (
    #{tutorialsName,jdbcType=VARCHAR},
    #{tutorialsContent,jdbcType=VARCHAR},
    #{createTime,jdbcType=TIMESTAMP},
    #{updateTime,jdbcType=TIMESTAMP})
  </insert>

注意:

你要是用的mybatisPlus,注意这是自己写的方法,

  • @TableField(fill = FieldFill.INSERT_UPDATE)自动填充注解不起作用!!
  • 那些deleteStatus,deleteTime啥的不需要创建的字段就不写了
  • 还有就是删除字段时末尾的逗号存在也会出错

2.Mapper类添加方法,

(返回int是改变的元组数,不是回调的id!!!)

public interface TutorialCoverMapper extends BaseMapper<TutorialCover> {
    int addChapters(TutorialCover tutorialCover);
}

3.service

public interface ITutorialCoverService extends IService<TutorialCover> {
    int addChapters(TutorialCover tutorialCover);

}

4.serviceImpl

注意:必须加@Transactional才会执行

@Service
public class TutorialCoverServiceImpl extends ServiceImpl<TutorialCoverMapper, TutorialCover> implements ITutorialCoverService {
   @Autowired
   private ITutorialsService tutorialsService;
    @Resource
    private TutorialCoverMapper tutorialCoverMapper;
    //
    @Transactional
    @Override
    public int addChapters(TutorialCover tutorialCover) {
        return tutorialCoverMapper.insert(tutorialCover);
    }

}

5.使用

注意:insertNum是改变元组的个数!!回调id已经填入你插入的对应实体了

 //回调id
 		//insertNum是改变元组的个数!!不是回调的id
        int insertNum = tutorialCoverService.addChapters(tutorialCover);
        //回调id已经填入你插入的对应实体了
        //实体中id已经有值了
        long tutorialCoverId = tutorialCover.getId();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值