前几天做项目时需要插入商品后得到数据库中的主键ID值, 于是查了一些资料, 在此记录
添加记录能够返回主键的关键点在于需要在<insert>标签中添加以下三个属性
<insert useGeneratedKeys="true" keyProperty="id" keyColumn="id"></insert>
useGeneratedKeys:表示主键id为自增长模式, 必须设置为true,否则无法获取到主键id
keyProperty:设置为POJO对象的主键id属性名称
keyColumn:设置为数据库记录的主键id字段名称 (这个可以省略)
新添加主键id并不是在执行添加操作时直接返回的,而是在执行添加操作之后将新添加记录的主键id字段设置为POJO对象的主键id属性
<update id="updateByPrimaryKey" useGeneratedKeys="true" keyProperty="goodid" parameterType="com.qc2.entitys.Good" >
update good
set sellerId = #{sellerid,jdbcType=BIGINT},
stock = #{stock,jdbcType=BIGINT},
name = #{name,jdbcType=VARCHAR},
price = #{price,jdbcType=DECIMAL},
image = #{image,jdbcType=VARCHAR},
postage = #{postage,jdbcType=DECIMAL},
introduction = #{introduction,jdbcType=VARCHAR}
where goodId = #{goodid,jdbcType=BIGINT}
</update>
keyProperty表示返回的id要保存到对象的那个属性中,这里的名字要和对象的字段名对应上(否则keyColumn设置不能省略)。
mysql的话只要加上这两个属性就可以了,加上后会自动把主键set到插入对象的属性上。