Generated Key 的功能

news2024/9/24 5:33:15

Generated Key 简介

    • 一. 前言
      • 现场报错
      • 原因
      • 解决
      • 扩展
    • 二. Generated Key简介:
      • 作用
      • 使用

一. 前言

现场报错

在客户现场遇到如下报错,现象是无法使用调度系统进行数据库的 insert 操作:
在这里插入图片描述
在这里插入图片描述

原因

数据库版本太老,而 insert 语句是使用的 MyBatisPlus 的方法,会自动在执行的sql后面加上自动生成的 generated key,而数据库的驱动版本太老,不支持 generated key,导致数据库无法识别输入的sql,爆出sql语法错误;

解决

在datasource信息中的url后面加上 &supportGeneratedKey=false ! 即关闭对generated key 的支持!

扩展

可以打开 MyBatis-plus 的SQL开关,让最终输出到数据库的sql语句打印到日志中,便于定位报错 !

二. Generated Key简介:

作用

MyBatisPlus 支持可以在插入数据时自动为 主键字段(如自增长ID)生成唯一的值!即generated key !

使用

使用Generated Key,就可以在插入数据时省略主键,数据库会自动为其生成一个唯一的值
即通过Generated Key,可以避免手动为主键字段生成唯一的值,也可以确保主键的唯一性,同时提高了数据插入的效率。

在JDBC中,可以通过Statement.RETURN_GENERATED_KEYS参数来获取插入数据后生成的主键值。

        String sql = "INSERT INTO users(name, age) VALUES('Tom', 20)";
        PreparedStatement statement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        int affectedRows = statement.executeUpdate();
        if (affectedRows > 0) {
            ResultSet rs = statement.getGeneratedKeys();
            if (rs.next()) {
                int id = rs.getInt(1); // 获取自动生成的主键值
                System.out.println("Inserted ID: " + id);
            }
        }

注意:不是所有的数据库都支持Generated Key功能,例如Oracle数据库。在使用之前,需要先确认数据库是否支持该功能。

参考:https://www.yzktw.com.cn/post/757527.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1201752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高性能图表库LightningChart JS v5.0 - 轻松实现图表自定义布局

LightningChart JS是Web上性能最高的图表库具有出色的执行性能 - 使用高数据速率同时监控数十个数据源。 GPU加速和WebGL渲染确保您的设备的图形处理器得到有效利用,从而实现高刷新率和流畅的动画。 点击获取LightningChart JS v5.0正式版下载 LightningChart JS …

如何压缩文件?学会这4个简单方法!

“我有一些文件需要发送,但是文件太大了无法发送,我想把它们压缩但是不知道怎么操作。怎么压缩文件呢?谁能帮我出出主意呀?” 在数字化时代,文件传输和存储变得日益重要。压缩文件是一种有效的方式,可以减小…

清单式管理提高巡检质量——巡检管理系统体系化管理

巡检管理系统采用体系化的清单式管理方法,减少巡检工作中人为因素的误差,让巡检工作落实到细节,并有迹可查。 清单式管理是一种高效、系统化的巡检方法,广泛应用于各种行业和领域。通过制定详细的巡检清单,明确巡检内容…

MATLAB Simulink和SMART PLC水箱液位高度PID控制联合仿真

SMART PLC 向导PID的详细介绍请查看下面文章链接: S7-200 SMART PLC PID向导详细介绍(如何实现P、PD、PID控制器)-CSDN博客文章浏览阅读1k次。这篇博客主要介绍SMART PLC PID向导的使用,PID控制相关的其它内容请查看专栏系列文章,常用链接如下:SMART PLC PID负压控制(过程…

简洁高效的微信小程序分页器封装实践

前言 在现今的移动应用开发中,微信小程序已经成为了一个备受欢迎的平台。然而,随着应用的复杂性增加,数据的管理和加载成为了一个问题。本文将探讨微信小程序中的一个关键概念:封装分页器,它是提升小程序性能和用户体验…

windows qos api使用示例

简介 本文给出C版以及Rust版调用windows API实现QOS的示例,并提出一些注意事项。QOS可以用来区分socket 优先级、实现带宽控制等诸多功能。 UDP版本 该示例的重要部分是客户端应用程序。客户端代码的工作方式如下: 1. 通过套接字连接到目标 IP 地址。…

手把手教你数据流图如何画,轻松搞定!

数据流图是一种强大的工具,用于可视化和分析系统中的数据流动和处理过程。它不仅能够帮助我们更好地理解系统的功能和流程,还能够帮助我们发现和解决潜在的问题。在本篇文章中,我们将手把手教你掌握数据流图。 一、数据流图的概念和构成元素 …

合合信息亮相新加坡科技周——Big Data AI World Expo展示AI驱动文档数字化的前沿能力

展会规模背景: 2023年10月11日-12日,合合信息在TECH WEEK SINGAPORE(新加坡科技周)亮相,并在人工智能世界博览会(Big Data & AI World)展示合合信息核心人工智能文字识别技术能力。合合信息…

cadence virtuoso 导出电路图

去掉网格:option-display file-export image

FPGA高端项目:图像采集+GTX+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案 3、设计思路框架设计框图视频源选择OV5640摄像头配置及采集动态彩条视频数据组包GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX …

如何在电脑和手机设备上编辑只读 PDF

我们大多数人更喜欢以 PDF 格式共享和查看文件,因为它更专业、更便携。但是,通常情况下您被拒绝访问除查看之外的内容编辑、复制或评论。如果您希望更好地控制您的 PDF 或更灵活地编辑它,请弄清楚为什么您的 PDF 是只读的,然后使用…

Final Cut Pro X for Mac:打造专业级视频剪辑的终极利器

随着数字媒体技术的不断发展,视频剪辑已经成为各行各业不可或缺的一部分。Final Cut Pro X for Mac作为一款专业的视频剪辑软件,凭借其强大的功能和易用性,已经成为Mac用户的首选。本文将向您详细介绍Final Cut Pro X for Mac的优势、功能以及…

思维导图软件 Xmind mac中文版软件特点

XMind mac是一款思维导图软件,可以帮助用户创建各种类型的思维导图和概念图。 XMind mac软件特点 - 多样化的导图类型:XMind提供了多种类型的导图,如鱼骨图、树形图、机构图等,可以满足不同用户的需求。 - 强大的功能和工具&#…

C++——const成员

这里先用队列举例&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <assert.h> using namespace std; class SeqList { public:void pushBack(int data){if (_size _capacity){int* tmp (int*)realloc(a, sizeof(int) * 4);if (tm…

Linux虚拟机的安装

文章目录 1. 准备虚拟机2. 安装所需软件3. 上传项目文件4. 配置项目环境5. 安装项目依赖6. 数据库设置7. 启动项目8. 测试项目9. 设置域名和DNS&#xff08;可选&#xff09;10. 定期维护11. 使用反向代理&#xff08;可选&#xff09;12. 安全性加固13. 使用容器化技术&#x…

操作系统概念

一、是什么 操作系统&#xff08;Operating System&#xff0c;缩写&#xff1a;OS&#xff09;是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序&#xff0c;同时也是计算机系统的内核与基石 简单来讲&#xff0…

springboot rocketmq 延时消息、延迟消息

rocketmq也有延迟消息&#xff0c;经典的应用场景&#xff1a;订单30分钟未支付&#xff0c;则取消的场景 其他博客提到从rocketmq5.0开始&#xff0c;支持自定义延迟时间&#xff0c;4.x只支持预定义延迟时间&#xff0c;安装rocketmq可参考RocketMq简介及安装、docker安装ro…

1.jvm基本知识

目录 概述jvm虚拟机三问jvm是什么&#xff1f;java 和 jvm 的关系 为什么学jvm怎么学习为什么jvm调优?什么时候jvm调优调优调什么 结束 概述 jvm虚拟机三问 jvm是什么&#xff1f; 广义上指的是一种规范&#xff0c;狭义上是 jdk 中的 jvm 虚拟机(实际上是各厂商实现的虚拟…

PCBA表面污染的分类及处理方法

NO.1 引言 在PCBA生产过程中&#xff0c;锡膏和助焊剂会产生残留物质&#xff0c;残留物中包含的有机酸和电离子&#xff0c;前者易腐蚀PCBA&#xff0c;后者会造成焊盘间短路故障。且近年来&#xff0c;用户对产品的清洁度要求越来越严格&#xff0c;PCBA清洗工艺逐渐被电子组…

Rust图形界面:从零开始创建eGUi项目

文章目录 创建组件show函数 egui系列&#xff1a;初步 创建 首先&#xff0c;用cargo创建一个新项目&#xff0c;并添加eframe cargo new hello cd hello cargo add eframe cargo run尽管默认创建的项目只实现了输出Hello world功能&#xff0c;但添加了eframe库&#xff0c…