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>

 

posted @ 2021-03-18 22:47  芃-芃  阅读(245)  评论(0编辑  收藏  举报