mybatis与mysql插入时返回主键id的值
<insert id="insertCharge" parameterType="com.bb.bean.Rechargerecord"> <selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER"> select LAST_INSERT_ID() </selectKey> INSERT INTO rechargeRecord(loginId,loginName,name) values(#{loginId},#{loginName},#{name}) </insert>
这里的keyProperty="id"中的id要与数据库中的主键名相同,同时记着order="AFTER" 是在获取到id值后再返回。
在插入成功后,要活的id需要从对象Rechargerecord.getId()获得,而不是在
int i= this.insertBySql("Rechargerecord.insertCharge",rechargerecord)返回的i。这里的i始终是返回执行成功的条数。
之前自己以为i会是id的值,结果搞了半天。mybatis自动会将返回的主键set在对象对应的主键id的属性中。