Mybatis-在-insert-之后想获取自增的主键-id

1、dao层:

package com.admin.dao.mapper.linkage;
@MyBatisDao
public interface StrategyMapper {
  int insert(Strategy record);
}

2、实现层

package com.admin.dao.mapper.linkage;
@Service
public class StrategyService {

  @Autowired
  private StrategyMapper strategyDao;

  public int insert(Strategy strategy){
      this.strategyDao.insert(strategy);
      int id = strategy.getId();
      System.out.println(id);
  }
}

3、mapper.xml

<insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.shengtong.smartlamppost.admin.dao.entity.linkage.Strategy" >
  insert into linkage_strategy (id, strategy_name, priority, 
  status, create_by, create_date, 
  update_by, update_date, remarks
  )
  values (#{id,jdbcType=INTEGER}, #{strategyName,jdbcType=VARCHAR}, #{priority,jdbcType=INTEGER}, 
  #{status,jdbcType=CHAR}, #{createBy.id,jdbcType=VARCHAR}, #{createDate,jdbcType=TIMESTAMP}, 
  #{updateBy.id,jdbcType=VARCHAR}, #{updateDate,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR}
  )
  </insert>

总结:

  1. 想要获取自增主键id,应该通过对象的getId()方法,而并不是insert的返回值,insert的返回值表示的是影响行数
    2.在mapper.xml中:useGeneratedKeys=“true”、keyProperty=“id”,这两个属性的作用:
      共同决定了sql执行后,会将主键封装到id属性上;
      自增主键封装到了对象的id属性上了,那么想要获取,直接调用对象的getId()方法就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值