mybatis使用注解方式插入数据后获取自增长的主键值
Mybatis使用:Sql Annotation
mybatis本身提供的注解
插入
插入的使用注解
获取自增id的方式有
INSERT INTO table_name (col1, col2,…) VALUES (‘val1’, ‘val2’…);
写SQL,但不要自己插入主键值,插入数据后获取自增长的主键值
配置@Options(useGeneratedKeys=true, keyProperty=”对象.属性”)
这个的作用是设置是否使用JDBC的getGenereatedKeys()方法获取主键并赋值到keyProperty设置的对象的属性中,
插入一条记录后,还想得到这条记录的自增主键ID,useGeneratedKeys=true就是定义数据库返回主键ID的。
也就是说把自增长的主键值赋值给对象相应的属性
这里一定要记住注解的时候不要把自增id写进去否则会报错
先来看看我的场景,首先控制器里面给一张表增加一条数据:
mapper如下:
serviceImpl如下:
Service接口定义如下:
void insert(UserStation usn);
好了,我们插入一条数据,在控制器里面调用,执行即如果如下:
看到错误了,意思就是主键为空了,我看了表里面,id是默认自增的,这个时候我们把insert注解的自增id去掉:
可以看到自增的id获取到了:22
我们再去表中看看:
这样自增成功!可以拿到自增ID。
记得注解的时候一定要去掉自增id字段