1.oracle插入数据后返回自增id的方法
执行完insert后,主键值包装在了参数对象里边,通过ArticleInfo.getArticleInfoId()获取:
<insert id="insert" parameterType="top.zdigi.entity.ArticleInfo">
<selectKey keyProperty="articleInfoId" resultType="java.lang.Integer" order="BEFORE">
select public.article_info_id_seq.nextval from dual
</selectKey>
insert into ARTICLE_INFO (ARTICLE_INFO_ID, TITLE, SUMMARY,
IS_TOP, PAGE_VIEW, CREATE_BY
)
values (#{articleInfoId,jdbcType=DECIMAL}, #{title,jdbcType=VARCHAR}, #{summary,jdbcType=VARCHAR},
#{isTop,jdbcType=DECIMAL}, #{pageView,jdbcType=DECIMAL}, #{createBy,jdbcType=TIMESTAMP}
)
</insert>
2.MySQL 插入数据后返回自增id的方法
1、insert按如下修改,主键值包装在了参数对象里边,通过ArticleInfo.getArticleInfoId()获取:
<insert id="insert" parameterType="top.zdigi.entity.ArticleInfo" keyProperty="articleInfoId" useGeneratedKeys="true">
insert into ARTICLE_INFO ( TITLE, SUMMARY,
IS_TOP, PAGE_VIEW, CREATE_BY
)
values (#{title,jdbcType=VARCHAR}, #{summary,jdbcType=VARCHAR},
#{isTop,jdbcType=DECIMAL}, #{pageView,jdbcType=DECIMAL}, #{createBy,jdbcType=TIMESTAMP}
)
</insert>
2、插入selectKey标签,获取同上
<insert id="insert" parameterType="top.zdigi.entity.ArticleInfo">
<selectKey keyProperty="articleInfoId" resultType="java.lang.Integer" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
insert into ARTICLE_INFO (ARTICLE_INFO_ID, TITLE, SUMMARY,
IS_TOP, PAGE_VIEW, CREATE_BY
)
values (#{articleInfoId,jdbcType=DECIMAL}, #{title,jdbcType=VARCHAR}, #{summary,jdbcType=VARCHAR},
#{isTop,jdbcType=DECIMAL}, #{pageView,jdbcType=DECIMAL}, #{createBy,jdbcType=TIMESTAMP}
)
</insert>
3.postgresql插入数据后返回自增id的方法
执行后,通过结果集中的ARTICLE_INFO_ID获取:
<select id="insert" parameterType="top.zdigi.entity.ArticleInfo" resultType="java.lang.Integer">
insert into ARTICLE_INFO (ARTICLE_INFO_ID, TITLE, SUMMARY,
IS_TOP, PAGE_VIEW, CREATE_BY
)
values (nextval('public.article_info_id_seq'), #{title,jdbcType=VARCHAR}, #{summary,jdbcType=VARCHAR},
#{isTop,jdbcType=DECIMAL}, #{pageView,jdbcType=DECIMAL}, #{createBy,jdbcType=TIMESTAMP}
) returning ARTICLE_INFO_ID;
</select>
4.oracle和postgresql插入数据后返回自增id的方法 (通用版)
(小技巧:使用mybatis generate tool 插件时,填写主键,insert语句会自动生成主键配置)
<insert id="insert" parameterType="top.zdigi.entity.ArticleInfo" keyColumn="article_info_id" keyProperty="articleInfoId" useGeneratedKeys="true">
insert into ARTICLE_INFO ( article_info_id,TITLE, SUMMARY,
IS_TOP, PAGE_VIEW, CREATE_BY
)
values (#{articleInfoId,jdbcType=DECIMAL},#{title,jdbcType=VARCHAR}, #{summary,jdbcType=VARCHAR},
#{isTop,jdbcType=DECIMAL}, #{pageView,jdbcType=DECIMAL}, #{createBy,jdbcType=TIMESTAMP}
)
</insert>