mybatis执行insert实体后返回主键

来源:互联网 发布:经典名著改编电影知乎 编辑:程序博客网 时间:2024/05/16 02:32
有时候在使用mybatis进行插入数据时,希望可以在插入数据后返回该新插入数据的主键,可以通过如下两种方式实现:
1、在insert标签里添加如下标签:
<selectKey resultType="java.lang.Short" order="AFTER" keyProperty="id">     SELECT LAST_INSERT_ID() AS id</selectKey>
其中:keyProperty的值必须在实体里提供setter方法,这样返回的主键会自动赋值。
2、通过为insert添加属性:
    <!-- useGeneratedKeys="true" keyProperty="xxx" for sqlserver and mysql -->    <!-- xxx 为java对象属性,必须有setter方法, 指定useGeneratedKeys和keyProperty后,自动增长的字段值会自动赋值给此对象 -->    <insert id="insert" useGeneratedKeys="true" keyProperty="androidApkfileId">    <![CDATA[        INSERT INTO `tbl_android_apkfile` (            `android_id` ,            `apkfile_id` ,            `package_name` ,            `download_url`,            `file_name`        ) VALUES (            #{androidId, jdbcType=INTEGER} ,            #{apkfileId, jdbcType=INTEGER} ,            #{packageName, jdbcType=VARCHAR} ,            #{downloadUrl, jdbcType=VARCHAR},            #{fileName, jdbcType=VARCHAR}        )    ]]>    </insert>

当然,对于这种返回的主键必须是可以设置为自动增加的主键,比如mysql和sql server