搬砖中的小事之代码(四)--useGeneratedKeys的理解与使用

2024-04-16 18:38

本文主要是介绍搬砖中的小事之代码(四)--useGeneratedKeys的理解与使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

调试centerBank接口,业务实现类里面想要通过获取表格中主键id,来进行逻辑判断,从而进行更新;
直接撸代码–mapper.xml中的插入方法:

<insert id="insertSelective" parameterType="com.baidu.example.entity.CenterBankRecordsEntity" useGeneratedKeys="true" keyProperty="id">insert into center_bank_records<trim prefix="(" suffix=")" suffixOverrides="," ><if test="id != null" >id,</if><if test="startDate != null" >start_date,</if><if test="endDate != null" >end_date,</if><if test="orderId != null" >order_id,</if><if test="returnCode != null" >return_code,</if><if test="returnMessage != null" >return_message,</if><if test="createTime != null" >create_time,</if><if test="lastModifyTime != null" >last_modify_time,</if><if test="status != null" >status,</if><if test="mac != null" >mac,</if><if test="userId != null" >user_id,</if></trim><trim prefix="values (" suffix=")" suffixOverrides="," ><if test="id != null" >#{id,jdbcType=BIGINT},</if><if test="orderId!= null" >#{orderId,jdbcType=VARCHAR},</if><if test="startDate != null" >#{startDate,jdbcType=BIGINT},</if><if test="endDate != null" >#{endDate,jdbcType=BIGINT},</if><if test="returnCode != null" >#{returnCode,jdbcType=VARCHAR},</if><if test="returnMessage != null" >#{returnMessage,jdbcType=VARCHAR},</if><if test="createTime != null" >#{createTime,jdbcType=BIGINT},</if><if test="lastModifyTime != null" >#{lastModifyTime,jdbcType=BIGINT},</if><if test="status != null" >#{status,jdbcType=VARCHAR},</if><if test="mac != null" >#{mac,jdbcType=VARCHAR},</if><if test="userId != null" >#{userId,jdbcType=VARCHAR},</if></trim></insert>

然后想通过service实现类里面的判断id是否存在,此时的id的存在与否,就在于我们在上方代码中是否设置useGeneratedKeys的值为true,
实现类中的代码(entity也是CenterBankRecordsEntity定义的对象,只是之前赋值过部分变量):

CenterBankRecordsEntity updateEntity=new CenterBankRecordsEntity();if( entity.getId() != null) {updateEntity.setId(entity.getId());if (Constants.SUCCESS.equals(resultInfo.getRspCode())) {updateEntity.setStatus(StatusEnum.SUCCESS.toString());} else {updateEntity.setStatus(StatusEnum.FAILED.toString());}updateEntity.setReturnCode(result.getResult_code());updateEntity.setReturnMessage(result.getResult_msg());updateEntity.setLastModifyTime(DateUtil.getCurrentTime());centerBankRecordsDao.updateByPrimaryKeySelective(updateEntity);}return resultInfo;}

综述:
useGeneratedKeys 取值是boolean 类型,要么是true,要么是false; 默认值是:false。
它的含义:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的model属性中。

这篇关于搬砖中的小事之代码(四)--useGeneratedKeys的理解与使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/909591

相关文章

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C