|
在使用mybatis操作MYSQL数据库时,想取插入数据后的主键,一直以为返回是主键,但取来取去得到的值是影响记录数。将我的代码贴一下,希望可以帮到其他人。
<!-- 增加检测信息-->
<insert id="addInspectionInfoSQL" parameterType="java.util.HashMap" keyProperty="IID" keyColumn="IID">
<selectKey resultType="long" order="AFTER" keyProperty="IID">
SELECT LAST_INSERT_ID() as IID
</selectKey>
INSERT into We_InspectionInfo(LID,checkID,result,cost)
VALUES(#{LID},#{checkID},#{result},#{cost})
</insert>
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("LID",1);
paramMap.put("checkID",1);
paramMap.put("result","检测良好");
paramMap.put("cost",100);
Object key = this.sqlSessionTemplate.insert("addInspectionInfoSQL", paramMap);
注意 返回来的 key 值不是插入后自键的主键 而是影响记录数。
数据插入后,mybatis将主键放后到了paramMap中
取主键:Long iid = paramMap.get("IID").toString(); |
|
|