前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mybatis 在 insert 之后想获取自增的主键 id

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

作者头像
麦克劳林
发布2018-12-19 16:04:48
3.6K0
发布2018-12-19 16:04:48
举报

1、dao层:

代码语言:javascript
复制
package com.admin.dao.mapper.linkage;
@MyBatisDao
public interface StrategyMapper {
  int insert(Strategy record);
}

2、实现层

代码语言:javascript
复制
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();
  }
}

3、mapper.xml

代码语言:javascript
复制
<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()方法就可以了
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.11.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档