mybatis向数据库里插入记录后自动返回记录ID问题

 更新时间:2025年01月14日 09:16:04   作者:左直拳  
本文介绍了在接手项目时,对一个业务处理逻辑进行重构和性能优化的经历,作者提到,性能问题可能是导致bug的一个重要原因,作者提到,在以前的.NET项目中,插入记录后系统会自动刷新实体类,为其中的主键ID赋值,而SpringBoot项目mybatis也可以通过指定主键来优化代码

mybatis向数据库里插入记录后自动返回记录ID

近期维护一个接手项目,因为找bug,重构其中一个业务处理逻辑,当中包括性能优化。我怀疑,性能是导致bug的一个重要原因。其实,就算性能与bug无关,按照我的秉性,也会忍不住半夜起来优化一下。

这里面说的性能,包括之前的代码滥用了数据库。最典型的,是插入一条记录,为了得到记录的ID(主键,自增字段),然后又查找了一遍,并且这个查找,因为现在还不知道ID,所以又结合了过滤条件。几十万条记录的表里查找,不说大海捞针,也是沙堆里淘宝,”千淘万漉虽辛苦,吹尽狂沙始到金“,服了。

但是,以前搞.NET的时候,插入记录,系统会自动刷新实体类,为里面的主键ID赋值,根本不需要自己去查找。

Spring Boot项目mybatis其实也是一样的,具体如下:

1、表设计时

ID(假设字段名叫ID)是主键,自增

2、mybatis的xml中

insert语句要指明主键

3、java代码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JSON for java快速入门总结学习

    JSON for java快速入门总结学习

    这篇文章主要介绍了JSON for java入门总结学习,有需要的可以了解一下。
    2016-11-11
  • java多线程编程之join方法的使用示例

    java多线程编程之join方法的使用示例

    join方法的功能就是使异步执行的线程变成同步执行。也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用join方法
    2014-01-01
  • 详解Java如何优雅的实现异常捕获

    详解Java如何优雅的实现异常捕获

    在一个优秀的项目中一定少不了对程序流程良好的异常捕获与日志打印,所以本文主要为大家介绍了如何优雅的实现异常捕获与日志打印输出,有需要的可以参考下
    2023-09-09
  • SpringBoot自带模板引擎Thymeleaf使用示例详解

    SpringBoot自带模板引擎Thymeleaf使用示例详解

    Thymeleaf是一款用于渲染XML/HTML5内容的模板引擎,类似JSP,它可以轻易的与SpringMVC等Web框架进行集成作为Web应用的模板引擎,本文给大家介绍SpringBoot自带模板引擎Thymeleaf使用示例,感兴趣的朋友一起看看吧
    2023-12-12
  • java lambda 表达式中的双冒号的用法说明 ::

    java lambda 表达式中的双冒号的用法说明 ::

    这篇文章主要介绍了java lambda 表达式中的双冒号的用法说明 ::具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • java多线程编程实例

    java多线程编程实例

    这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下。
    2017-11-11
  • MyBatis-Plus中最简单的查询操作教程(Lambda)

    MyBatis-Plus中最简单的查询操作教程(Lambda)

    这篇文章主要给大家介绍了关于MyBatis-Plus中最简单的查询操作的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • JavaWeb中Servlet的深入讲解

    JavaWeb中Servlet的深入讲解

    这篇文章主要介绍了JavaWeb中Servlet的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • @DynamicUpdate //自动更新updatetime的问题

    @DynamicUpdate //自动更新updatetime的问题

    这篇文章主要介绍了@DynamicUpdate //自动更新updatetime的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java实现的AES256加密解密功能示例

    Java实现的AES256加密解密功能示例

    这篇文章主要介绍了Java实现的AES256加密解密功能,结合完整实例形式分析了Java实现AES256加密解密功能的步骤与相关操作技巧,需要的朋友可以参考下
    2017-02-02

最新评论