首页 > 数据库 >解决业务中,要插入数据库,获取到插入数据的主键来进行后续操作

解决业务中,要插入数据库,获取到插入数据的主键来进行后续操作

时间:2023-08-07 12:13:09浏览次数:32  
标签:useGeneratedKeys 获取 数据库 id 插入 菜品 主键

在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成,

问题:对于uuid使用Java代码生成的方式还比较容易控制,但是如果主键必须用int或Long,使用数据库生成的主键比较简便,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了。

 

比如在项目中我们插入二个表的数据,一对多的关系,一个菜品表,一个口味表,先插入菜品表,然后用菜品表的主键当成口味表的逻辑外键,为了保证菜品表主键不重复,我们使用数据库自增。

先插入菜品表数据

 

 

 

 

useGeneratedKeys=“true” keyProperty=“id”

useGeneratedKeys设置为 true 时,表示如果插入的表id以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键id返回。

 keyProperty=“id”,根据实体类的id,获取插入数据的主键

 

 

获取插入菜品表数据的主键

 这样我们就解决业务中,获取插入数据表自增获取主键了,通过useGeneratedKeys设置生效, keyProperty=“id”指定实体类的名称

 

备注:
useGeneratedKeys参数只针对 insert 语句生效,默认为 false

 

标签:useGeneratedKeys,获取,数据库,id,插入,菜品,主键
From: https://www.cnblogs.com/zxpyyds/p/17610416.html

相关文章

  • 如何将 Microsoft Access 数据转移到 SQL Server 数据库
    在本文中,我们将为您提供一个包含屏幕截图的分步教程,介绍如何使用dborgeStudioforSQLServer 将MicrosoftAccess数据库转换为SQLServer。这个GUI工具几乎可以增强使用数据库的每个方面,包括数据库设计、SQL编码、数据库比较、模式和数据同步、有用测试数据的生成以及许多......
  • 使用Entity Framework Core进行数据库操作
    当使用EntityFrameworkCore(EFCore)进行数据库操作时,你需要首先设置数据库上下文(DbContext),定义实体类(Entity),然后通过上下文来执行CRUD(创建、读取、更新和删除)操作。下面是一个简单的示例,演示如何使用EFCore进行数据库操作。安装EFCoreNuGet包:首先,你需要在项目中安装Entity......
  • C#实现SqlServer数据库同步
    实现效果:设计思路:1.开启数据库及表的cdc,定时查询cdc表数据,封装sql语句(通过执行类型,主键;修改类型的cdc数据只取最后更新的记录),添加到离线数据表;2.线程定时查询离线数据表,更新远程库数据;3.远程库数据被更改又会产生cdc数据,对此数据进行拦截;配置文件说明:{ "AsyncInterval":......
  • 解决缓存与数据库的数据一致性问题的终极指南
    摘要:缓存是提高应用性能的有效手段,然而,缓存与数据库之间的数据一致性问题常常困扰着开发者。本文将探讨缓存与数据库的数据一致性问题的原因,以及如何通过不同的解决方案来确保数据的一致性,从而构建稳健高效的缓存系统。1.缓存与数据库的数据一致性问题缓存是将热门数据存储在高速......
  • ADONET数据库操作对象
    SqlConnection对象SqlConnection简介要建立ADO.NET与数据库的连接,需要使用SqlConnection对象来实现,该对象需要一个数据库连接字符串。实例化SqlConnection实例化SqlConnection对象时必须使用数据库连接字符串,才能与SQLServer服务器建立连接。实例化SqlConnection对象有两种......
  • 什么是向量数据库
    在计算机科学中,向量数据库是一种专门用于存储和管理向量数据的数据库系统。向量数据库与其他数据库系统的主要区别在于,它使用向量运算来计算数据之间的相似度,而不是基于文本的查询语言。这种计算方式使得向量数据库在处理高维数据和复杂的语义时具有更高的效率和准确性。向量数据......
  • Javaexcel文件读取,插入到数据库中
    你可以使用Java的ApachePOI库来读取Excel文件,并使用JDBC连接数据库将数据插入到数据库中。下面是一个示例代码:importjava.io.FileInputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importorg.apache.poi.ss.usermo......
  • 使用缓存优化网站性能:缓解数据库压力,提高访问速度
    使用缓存是一种有效的优化网站性能的方式,特别是对于那些访问集中在少部分数据上的场景,可以显著减轻数据库的压力,提高网站的响应速度和性能。缓存的主要原理是将常用的数据存储在内存中,以避免频繁地从数据库读取数据。由于内存的读写速度远远快于磁盘,通过缓存可以大幅提高数据访问......
  • 笔记|数据库设计——《数据库原理》
    数据库结构设计包括⚫需求分析阶段:综合各个用户的应用需求⚫概念结构设计:形成独立于各个DBMS概念模式,如E-R图⚫逻辑结构设计:形成数据库逻辑模式与外模式,用(基本)数据模型描述,例基本表、视图等⚫物理结构设计:形成数据库内模式,如DB文件或目录、索引一.需求分析......
  • 【面试经验分享】MySQL数据库面试题:如何定位慢查询?
    面试官:MySQL中,如何定位慢查询?候选人:嗯~,我们当时做压测的时候有的接口非常的慢,接口的响应时间超过了2秒以上,因为我们当时的系统部署了运维的监控系统Skywalking,在展示的报表中可以看到是哪一个接口比较慢,并且可以分析这个接口哪部分比较慢,这里可以看到SQL的具体的执行时间,所以可以......