Mybatis 插入数据后获取mysql自增主键和非自增主键的值

获取mysql自增主键值,方式1:
<mapper namespace="test">
<!--
                    useGeneratedKeys:使用自增序列,默认false
                    keyProperty:返回的主键值赋给哪个属性
                    keyColumn: 数据库中的自增主键的列名,默认是数据库表的第一列。当主键列不是表中的第一列的时候需要设置,PostgreSQL必须设置。
                -->
<insert id="insertBook" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into book (title,price,publishDate) value(#{title},#{price},#{publishDate})
</insert>
</mapper>
       

获取mysql自增主键值,方式2:
<mapper namespace="test">
<insert id="insertUser" parameterType="User">
<!--
keyProperty:将查询出的主键设置到parameterType中的哪个属性上
order:相对于sql语句的执行顺序
resultType:指定返回值类型
LAST_INSERT_ID():获取ID函数
-->
<selectKey keyProperty="id" order="AFTER" resultType="Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address})
</insert>
</mapper>
获取mysql非自增主键值:
<mapper namespace="test">
<insert id="insertUser" parameterType="User">
<selectKey keyProperty="id" order="BEFORE" resultType="String">
SELECT uuid()
</selectKey>
insert into user(id,username,birthday,sex,address) value(#{id}.#{username},#{birthday},#{sex},#{address})
</insert>
</mapper>