如果把表的主键设为了自增长,在后面进行insert操作时,数据库自动帮我们生成了id。
比如:
1 | insert into account (name, money) values (#{name}, #{money}) //假设name = "vip", money = "666" |
执行完后,我们去看数据库,发现多了一条记录:

好,现在问题来了:看了数据库后我们知道自动生成的id是11,如果不看数据库,能不能知道这个id呢?
selectKey就能解决这个问题!
示例如下:
1 | <insert id="insert" parameterType="cn.liuxingchang.domain.Account"> |
说明:
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})先执行!