mybatis獲取新增記錄的id是比較常見的操作. 簡單配置即可達到目的,如下:
<selectKey keyProperty="id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
今天使用的過程中發現以上的配置不能獲取到新增id, 對比了下之前的代碼, 主要是在mapper接口中對參數添加了@Param("record")註解, mapper接口如下:
int insert(@Param("record") Wechat record, @Param("modelName") String modelName);
解決方法, 就是在mapper.xml的keyProperty處也添加上變量的別名, 如下:
<selectKey keyProperty="record.id" order="AFTER" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>