数据新增获取自增ID 【通过Mybatis】

      在写代码的时候,数据库id字段设置为自增,需要添加一条新的数据到数据库,然而添加完之后,还需要获取这条新加数据的id,用于其他业务。

数据库中id为自增:

 表中的数据:

 

  XML文件内容:

<insert id="insertSetting" parameterType="com.pig4cloud.pigx.earlywarning.entity.EwSetting"
                           useGeneratedKeys="true" keyProperty="id">
	INSERT INTO `workingspace`.`ew_setting` 
            (`id`,`deviceId`,`ewIconId`,`ewTypeId`,`ewLevelId`,`ewLevelName`,`name`,
             `delayTime`,`upgradeTime`,`isDisplay`,`enable`,`sendMail`,`sendMessage`,
             `createTime`,`updateTime`,`createUser`,`updateUser`,`delFlag`,`description`)
        VALUES
            (#{id},#{deviceId},#{ewIconId},#{ewTypeId},#{ewLevelId},#{ewLevelName},
             #{name},#{delayTime},#{upgradeTime},#{isDisplay},#{enable},#{sendMail},
             #{sendMessage},#{createTime},#{updateTime},#{createUser},#{updateUser},
             #{delFlag},#{description});
	</insert>

Mapper方法:

public interface EwSettingMapper{

	int insertSetting(EwSetting ewSetting);
}

实际调用代码:

@Service
@AllArgsConstructor
public class EwSettingServiceImpl extends ServiceImpl<EwSettingMapper, EwSetting> implements EwSettingService {

    private final EwSettingMapper ewSettingMapper;

    public void saveSetting() {
        //new一个对象
        EwSetting ewv = new EwSetting();
        //随便给这个对象设置几个值
	    ewv.setEwLevelId(1L);
	    ewv.setEwIconId(1L);
	    ewv.setDeviceId(1L);
	    ewv.setEwTypeId(1L);
        if(ewSettingMapper.insertSetting(ewv) > 0){
	    	System.out.println("ewv的id为:"+ewv.getId());
	    }
    }
}

输出结果:

ewv的id为: 5

 

      关于这两个属性的具体信息可参阅:Mybatis中文手册

      说来惭愧,这还是我第一次看Mybatis的官方文档,emm,没看懂说的是什么

       百度了一下,下面这段话觉得说的还蛮通俗易懂的 :

       Mybatis 配置文件 useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。

                                                                                                                                           ——来自  nininininiabc222

       需要注意的是,此时返回的主键是直接setter进了 ewSettingMapper.insertSetting(ewv) 中的ewv的,insertSetting方法的返回值依旧是受影响的行数,所以,执行了 insertSetting 操作后,可通过 Long id = ewv.getId(); 得到id的值。

       反正,新知识点 get√ ~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值