java获取 mybatis 新增数据的【自动增长】Id

mybatis 框架

方法一:

        TeamInfo teamInfo = new TeamInfo();
        teamInfo.setTeamName(context.getTeamName());
        teamInfo.setSource(context.getSource());
        teamInfo.setCreateDatetime(new Date());
        teamInfo.setUpdateDatetime(new Date());
        teamInfo.setDelFlag(CommonConstant.DEL_FLAG_NODEL);
        teamInfoMapper.insert(teamInfo);
        Long id = teamInfo.getId();
        System.out.println("id===" + id);

这样 直接 getId 可以拿到当前的Id

方法二

    <insert id="insertDemo" >
        INSERT INTO team_info (team_name, `source`, create_datetime, update_datetime, del_flag)
        VALUES ('大仙集团', '大仙集团', '2022-06-01 11:32:24', '2022-06-01 11:32:24', '0')

        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
            select LAST_INSERT_ID()
        </selectKey>

    </insert>

在 新增语句中 加入 其中 keyProperty 是 表 中id 在实体类对应的属性;
order 是在 insert 之前执行 还是之后,一般是之后

对应的Java中

    TeamInfo teamInfo = new TeamInfo();
       Long newId = teamInfoMapper.insertDemo(teamInfo);
        System.out.println("newId===" + teamInfo.getId());

必须传入 实体对象,使用 teamInfo.getId() 获取id;

方法三:

    <insert id="insertDemo" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO team_info (team_name, `source`, create_datetime, update_datetime, del_flag)
        VALUES ('大仙集团', '大仙集团', '2022-06-01 11:32:24', '2022-06-01 11:32:24', '0')

    </insert>

其中 keyProperty 是 表 中id 在实体类对应的属性;

对应的Java中

    TeamInfo teamInfo = new TeamInfo();
       Long newId = teamInfoMapper.insertDemo(teamInfo);
        System.out.println("newId===" + teamInfo.getId());

必须传入 实体对象,使用 teamInfo.getId() 获取id;

===== tk.mybatis框架
需要在实体类 的ID 属性上 增加注解
@GeneratedValue(strategy = GenerationType.IDENTITY)

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值