想写一个插入后获取刚插入的数据的id,结果总是1.
<insert id="save" parameterType="dictionary"> <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id"> SELECT LAST_INSERT_ID() as id </selectKey> insert into tb_cfms_dictionary ( category, `key`, `value`, parentId ) values ( #{category}, #{key}, #{value}, #{parentId} ) </insert>
其中dictionary是我们实体类路径
返回1是因为我们查询成功返回1,查询失败自然返回0
再次之前,因为设置id为String类型会一直报错,因为不能返回String类型。
将实体类中的id改为Integer后,然后返回1.其实真实的id已经返回我们传入的参数实体类了。
其中keyProperty就是将id返回到实体类中了。所以接下来只要这么写
dictionary.setParentId("32");
dictionaryDao.save(dictionary);
parentId = String.valueOf(dictionary.getId());
左边进行断点,在此之前dictionary实体类是并没有id的
下一步之后id就会有id值了
问题解决