博客
关于我
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/

    你可能感兴趣的文章
    MyBatis学习总结(2)——使用MyBatis对表执行CRUD操作
    查看>>
    MyBatis学习总结(27)——Mybatis-Plus使用小技巧
    查看>>
    MyBatis学习总结(26)——Mybatis源码中使用了哪些设计模式?
    查看>>
    mybatis
    查看>>
    MybaisPlus的Mapper.xml中,数据库中的字段是Mybatis中的关键字如何处理---SpringCloud工作笔记185
    查看>>
    Mobx 结合 TypeScript 实现 setState 类型推导
    查看>>
    MyAdapter代码复用工具类
    查看>>
    Mock 工具使用:弱网测试
    查看>>
    Mock+Proxy在SDK项目的自己主动化測试实战
    查看>>
    Mock.js 的语法规范
    查看>>
    Mock.js 的语法规范学习
    查看>>
    my97日期控件插件的开发与编写
    查看>>
    mockcpp & testngpp在2010.7~11月的改进
    查看>>
    Mock在接口测试中的实际应用
    查看>>
    Mock技术在JAVA微服务单元测试中的应用
    查看>>
    Mock模拟测试实战
    查看>>
    Mock模拟测试框架详解
    查看>>
    mock的使用二(根据数据模板生成模拟数据)
    查看>>
    mock静态方法指引
    查看>>
    Modbus Poll/Slave 模拟器使用教程
    查看>>