mybatis中主键回填的两种方式
1. 方式一:使用useGeneratedKeys属性
useGeneratedKeys使用主键值
keyProperty:主键属性,添加数据后,将主键值赋值给哪一个对象属性
缺点:当前方式只适用于主键自增的数据库(MySQL),0racle不行
<!--主键回填方式一:此方式只适用于MySQL数据库,Oracle则不适用--> <insert id="addPerson" parameterType="com.xxx.pojo.Person" useGeneratedKeys="true" keyProperty="pid"> insert into person(pname,paddress) values(#{pname},#{address}) </insert>
1. 方式二:使用标签函数
selectKey:返回主键的标签
keyColumn:返回主键的字段
keyproperty:返回的字段值交给哪一个对象属性接收
order:返回时机,定义了返回主键是在添加前还是后
<!--主键回填方式二:适用于多种数据库--> <insert id="addPerson" parameterType="com.xxx.pojo.Person"> <selectKey keyColumn="pid" keyProperty="pid" resultType="int" order="AFTER"> select LAST_INSERT_ID() </selectKey> insert into person(pname,paddress) values(#{pname},#{address}) </insert>