当前位置: 代码网 > it编程>编程语言>Java > Springboot中useGeneratedKeys用法小结

Springboot中useGeneratedKeys用法小结

2024年09月04日 Java 我要评论
在spring boot项目中,usegeneratedkeys是 mybatis 框架中的一个参数,用于指定是否允许 jdbc 支持自动生成主键。这个参数可以在三个不同的位置设置:全局配置文件、xm

在spring boot项目中,usegeneratedkeys 是 mybatis 框架中的一个参数,用于指定是否允许 jdbc 支持自动生成主键。这个参数可以在三个不同的位置设置:全局配置文件、xml 映射器和接口映射器。

全局配置文件

可以在 mybatis 的全局配置文件 mybatis-config.xml 中的 <settings> 元素内设置 usegeneratedkeys 参数。例如:

<settings>
    <setting name="usegeneratedkeys" value="true"/>
</settings>

这样设置后,所有接口映射器中的插入操作都会尝试获取自动生成的主键,但对 xml 映射器不起作用。

xml 映射器

在具体的 xml 映射文件中,可以在 <insert> 标签中设置 usegeneratedkeys 属性。例如:

<insert id="addbigdatagroup" parametertype="bigdatagroup" usegeneratedkeys="true" keyproperty="groupid" keycolumn="group_id">
    insert into bigdata_group (group_id, group_name, comment, business_line, create_by, remark, create_time)
    values(#{groupid}, #{groupname}, #{comment}, #{businessline}, #{createby}, #{remark}, sysdate())
</insert>

这里 keyproperty 指定了 java 对象中的属性名,keycolumn 指定了数据库中的列名,这样在插入操作后,mybatis 会将生成的主键值回填到对应的 java 对象属性中。

接口映射器

在接口映射器中,可以使用 @options 注解来设置 usegeneratedkeys 参数。例如:

@options(usegeneratedkeys = true, keyproperty = "id", keycolumn = "id")
@insert("insert into test(name,descr,url,create_time,update_time) values(#{name},#{descr},#{url},now(),now())")
integer insertonetest(test test);

在这里,keyproperty 指定了 java 对象中的属性,keycolumn 指定了数据库中的列名,usegeneratedkeys 设置为 true 表示启用自动生成主键。

请注意,如果在接口映射器中设置了 usegeneratedkeys 参数,那么这个设置会覆盖全局配置文件中相同的设置。

如果在配置了 usegeneratedkeys 后,插入操作没有返回预期的主键值,可能是因为数据库驱动不支持自动生成主键,或者配置有误。确保数据库表配置了自动生成主键,并且 jdbc 驱动支持这一特性。

到此这篇关于springboot中usegeneratedkeys用法小结的文章就介绍到这了,更多相关springboot usegeneratedkeys内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com