博客
关于我
Mybatis配置useGeneratedKeys=“true“ keyProperty=“id“的作用
阅读量:796 次
发布时间:2023-02-09

本文共 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的情况。这对于保证数据一致性和业务逻辑的正确性至关重要。

    转载地址:http://ouffk.baihongyu.com/

    你可能感兴趣的文章
    MASM中可以定义的变量类型
    查看>>
    MasterPage(母板页)的不一般用法
    查看>>
    MatchingFrontier包简介及R实现
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    materialTabControl1_SelectedIndexChanged的使用
    查看>>
    Math.Atan2的基本讲解(C#版本)
    查看>>
    mathlab中deepDreamImage的参数PyramidLevels的作用
    查看>>
    Math类和StrictMath类源码详解
    查看>>
    matlab minboundrect,matlab 二值图像 求白色区域最小外接矩阵 长宽
    查看>>
    Matlab save load
    查看>>
    MATLAB 在大规模数据分析和处理中的性能优化策略有哪些?
    查看>>
    matlab 数字水印技术,数字水印技术DCT算法MATLAB源代码.doc
    查看>>
    matlab 线型_Matlab自动导出论文插图 「实用技巧」
    查看>>
    MATLAB-Scatter3-三维散点图投影至XYZ三个平面
    查看>>
    matlab中APP介绍-ChatGPT4o作答
    查看>>
    matlab中cat函数详解-ChatGPT4o作答
    查看>>
    matlab中CNN的使用详解-ChatGPT4o作答
    查看>>
    Matlab中imshow()函数的使用
    查看>>
    Matlab中save与load函数的使用
    查看>>
    matlab中如何进行优化问题求解-ChatGPT4o作答
    查看>>