关于Mybatis的insert方法返回值(将返回值受影响条数改为插入后的自增主键id)

今天做项目有一个需求——插入一条数据后返回插入数据的id(自增主键)值,然后根据id进行updata
刚开始在网上找到了一个方法——将Mapper.xml的insert方法加上 useGeneratedKeys=“true” keyProperty="id"这两个属性就可以解决(useGeneratedKeys 参数只针对 insert 语句生效,设置为true表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。keyProperty="id"是将id返回。)
加上这两个属性后,感觉完事大吉,但是测试的时候还是发现返回的值依旧是1(受影响的条数)。明明说好的返回id为啥不管用呢?
原因: 现在设置完成后的确是返回了id了,但是这个id返回到了我们的参数对象里,所以直接接收方法的返回值,收到的还是受影响条数。
现在我们假设我们向Mapper.xml传递的那个参数叫entity(封装信息作为参数用的实体类),我们返回的id就在entity里面封装着,不信打印一下他就ok了。
System.out.println(entity.id);
大功告成!

参照大佬博文解决的疑惑: 大佬博文网址

你可能感兴趣的:(关于Mybatis的insert方法返回值(将返回值受影响条数改为插入后的自增主键id))