Mybatis——【亲测】mybatis使用注解方式插入数据后获取自增长的主键值

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012325167/article/details/52403631

自己踩过的坑,查了好久,终于发现解决方法。

步骤有三:
1. 写SQL,但不要自己插入主键值
2. 配置@Options(useGeneratedKeys=true, keyProperty="对象.属性") 这个的作用是设置是否使用JDBC的getGenereatedKeys()方法获取主键并赋值到keyProperty设置的对象的属性中,说白了就是把自增长的主键值赋值给对象相应的属性
3. 在插入后,使用对象.主键属性的getXXId()方法 获取主键值

示例:

@Insert("INSERT INTO api(component, clientApi, scribeDescribe, clientApiVersion, invokeTimeout, authType, sessionRequire, openType) VALUES(#{api.component}, #{api.clientApi}, #{api.scribeDescribe}, #{api.clientApiVersion}, #{api.invokeTimeout}, #{api.authType}, #{api.sessionRequire}, #{api.openType})")
@Options(useGeneratedKeys = true, keyProperty = "api.apiId")
void add(@Param("api") Api api);

然后调用api.getApiId()即可

展开阅读全文

没有更多推荐了,返回首页