mybatis使用useGeneratedKeys+keyProperty返回自增主键

2023-12-28 20:36:57

在mybatis调用insert方法后,可以通过useGeneratedKeys+keyProperty属性获取自增主键。

用法如下:
实体类:这里的id为自增主键

public class Payment  implements Serializable {
    private Long id;
    private String serial;
}

dao方法:

public int create(Payment payment);

dao方法对应的xml

  <insert id="create" parameterType="Payment" useGeneratedKeys="true" keyProperty="id">
        insert into payment(serial) values(#{serial})
   </insert>

useGeneratedKeys :一个bool变量,为true时,返回数据库自动生成的记录主键id。
keyProperty:表明返回的主键名,在执行结束后相应的主键会被赋值,这里返回的主键为实体类中的主键id。

注意:返回的主键指在java程序中的形参,不会影响原先的sql执行结果,可以参考下面的代码。

每次在调用该接口后,会插入一个新的payment对象,并且获取生成的新的主键id。

@PostMapping("/payment/create")
    public CommonResult create( Payment payment){
   		//执行create方法
        int result = paymentService.create(payment);
        log.info("****插入结果:"+result);
        if(result>0){
            log.info("插入成功,新增的用户id:"+payment.getId());
            return new CommonResult(200,"创建成功",result);
        }else {
            log.info("插入失败");
            return new CommonResult<>(444,"插入失败",null);
        }
    }

文章来源:https://blog.csdn.net/weixin_44866921/article/details/135276966
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。