Mybatis配置useGeneratedKeys=“true“ keyProperty=“id“的作用
发布日期:2025-04-14 06:45:16 浏览次数:10 分类:精选文章

本文共 581 字,大约阅读时间需要 1 分钟。

在配置MyBatis的mapper映射文件时,我们经常会看到如下代码段:

insert into payment(serial) values(#{serial});

这段代码的主要作用是向数据库表中插入新记录,并利用数据库的自增主键特性来获取主键值。默认情况下,如果未设置此类代码,主键字段会显示为null,这对于业务逻辑处理来说是不合理的。

关键配置信息:

  • useGeneratedKeys属性

    • 取值为true或false,默认值为false。
    • 当取值为true时,会调用JDBC的getGeneratedKeys方法,获取数据库自增的主键值,并将其赋值给指定的属性(通过keyproperty参数指定)。
    • 取值为false时,主键值不会自动获取,需要手动设置。
  • keyProperty属性

    • 该属性指定了Java实体类中的属性名,该属性会被赋值为数据库自增主键的值。
    • 需要注意的是,keyproperty的值是Java类中的属性名,而不是数据库表中的主键字段名。
  • 使用说明:

    在前端调用时,可以通过以下方式获取主键值:

    userModel.setId(xx.getId());

    通过配置上述代码段,可以确保在插入操作完成后,主键字段的值能够正确获取,从而避免了主键为null的情况。这对于保证数据一致性和业务逻辑的正确性至关重要。

    上一篇:Mybatis配置
    下一篇:mybatis配置模板详细分析(全)

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年05月21日 12时04分51秒