MyBatis应用记录:MyBatis如何得到插入数据之后的主键值

一、MyBatis如何得到插入数据之后的主键值

1、第一种:数据库设置主键自增机制。

  userMapper.xml 文件中定义:

  <!-- 向 user 表插入一条数据 -->
    <insert id="insertUser" parameterType="com.ys.po.User">
        <!-- 将插入的数据主键返回到 user 对象中
             keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性
             select LAST_INSERT_ID():查询上一次执行insert 操作返回的主键id值,只适用于自增主键
             resultType:指定 select LAST_INSERT_ID() 的结果类型
             order:AFTER,相对于 select LAST_INSERT_ID()操作的顺序
         -->
        <selectKey keyProperty="id" resultType="int" order="AFTER">
            select LAST_INSERT_ID()
        </selectKey>
        insert into user(username,sex,birthday,address)
            value(#{username},#{sex},#{birthday},#{address})
    </insert>

2、第二种:非自增主键机制

  <!-- 向 user 表插入一条数据 -->
    <insert id="insertUser" parameterType="com.ys.po.User">
        <!-- 将插入的数据主键返回到 user 对象中
        流程是:首先通过 select UUID()得到主键值,然后设置到 user 对象的id中,在进行 insert 操作
             keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性
             select UUID():得到主键的id值,注意这里是字符串
             resultType:指定 select UUID() 的结果类型
             order:BEFORE,相对于 select UUID()操作的顺序
         -->
        <selectKey keyProperty="id" resultType="String" order="BEFORE">
            select UUID()
        </selectKey>
        insert into user(id,username,sex,birthday,address)
            value(#{id},#{username},#{sex},#{birthday},#{address})
    </insert>

 

上一篇:jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限


下一篇:JavaWeb17.3【EL&JSTL:JSTL标签】