前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL---mybatis如何返回主键id

SQL---mybatis如何返回主键id

作者头像
IT云清
发布2019-01-22 10:38:34
1.9K0
发布2019-01-22 10:38:34
举报
文章被收录于专栏:IT云清

使用mybatis时,insert方法如何返回主键?

代码语言:javascript
复制
void add(@Param("user")User user);

方法一:

代码语言:javascript
复制
<insert id="add" parameterType="com.java4all.User">
        <selectKey resultType="java.lang.String" order="AFTER" keyProperty="user.id">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into user ( name, age,address)
        values ( #{user.name},#{user.age},#{user.address})
 </insert>

下面这个是关键:order的值是after,表示先执行insert语句,然后再选择最后一个主键,返回到实体类中。       

 <selectKey resultType="java.lang.String" order="AFTER" keyProperty="id">

            SELECT LAST_INSERT_ID()

 </selectKey>

方法二:

代码语言:javascript
复制
<insert id="add" parameterType="com.java4all.User" useGeneratedKeys="true" keyProperty="user.id">
        insert into user ( name, age,address)
        values ( #{user.name},#{user.age},#{user.address})
 </insert>
注意:这里有一个坑,就是如果你用了别名,那么keyProperty中也要用别名,如果不用,那就都不要使用。
比如:
代码语言:javascript
复制
<insert id="add" parameterType="com.java4all.User" useGeneratedKeys="true" keyProperty="id">
        insert into user ( name, age,address)
        values ( #{name},#{age},#{address})
 </insert>

然后,user里需要提供id 的get set方法,添加方法执行完后id会被塞回到user对象中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年03月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注意:这里有一个坑,就是如果你用了别名,那么keyProperty中也要用别名,如果不用,那就都不要使用。
  • 比如:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档