#MyBatis:selectKey标签 <selectKey> #keyProperty、keyColumn、order、resultType @FDDLC

2020/10/09 12:07
阅读数 3.8K

如果把表的主键设为了自增长,在后面进行insert操作时,数据库自动帮我们生成了id。

比如:

insert into account (name, money) values (#{name}, #{money}) //假设name = "vip", money = "666"

执行完后,我们去看数据库,发现多了一条记录:

好,现在问题来了:看了数据库后我们知道自动生成的id是11,如果不看数据库,能不能知道这个id呢?

selectKey就能解决这个问题!

示例如下:

<insert id="insert" parameterType="cn.liuxingchang.domain.Account">
    <selectKey keyProperty="id" keyColumn="id" order="AFTER" resultType="int">
        select last_insert_id()
    </selectKey>
    insert into account (name, money) values (#{name}, #{money})
</insert>

说明:

1、keyColumn:数据表中那个自增长的id!

2、keyProperty:数据表的字段和实体类的属性是对应的,自增长的那玩意儿在实体类中对应的属性就是keyProperty!

3、order:本标签内的语句(这里是 select last_insert_id() )是先执行还是后执行!

这里order="AFTER",什么意思呢?

意思是:select last_insert_id()后执行,insert into account (name, money) values (#{name}, #{money})先执行!

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部