Mybatis获取主键自增的方法
原本的方法
使用原本的JDBC去获取主键自增的方法如下图所示:
在这段代码中,通过连接对象 conn 的 prepareStatement 方法创建了一个PreparedStatement对象,并将SQL语句和 RETURN_GENERATED_KEYS 常量作为参数传递给该方法。这意味着执行SQL语句后,PreparedStatement对象会返回生成的键值,通常用于获取自动生成的主键值或其他需要返回的键值信息。
使用Mybatis之后的方法
Mapper层
int register(@Param("user")User user);
xml文件
<insert id="register" parameterType="com.xszx.beans.User" useGeneratedKeys="true" keyProperty="id">insert into user(loginname, pwd) values (#{user.loginname},#{user.pwd})</insert>
Servlet层
User user = new User();String name = req.getParameter("name");String pwd = req.getParameter("pwd");user.setLoginname(name);user.setPwd(pwd);userMapper.register(user);System.out.println(user.getId());
当servlet层中调用了register(user)方法时,会先去mapper层中找到该方法,然后系统会去xml文件中扫描对应的方法,此时我们首先要确保数据库的主键是自动递增的,这样,当你插入数据时,MyBatis 会自动获取生成的 ID 并将其设置到 User 对象的 id 属性上。
-
parameterType="com.xszx.beans.User"表示这个<insert>语句期望的参数是一个User对象,这个对象应该包含loginname和pwd属性。 -
useGeneratedKeys="true"和keyProperty="id"表示MyBatis应该使用数据库生成的键(通常是自增ID)来填充User对象的id属性。 -
insert into user(loginname, pwd) values (#{user.loginname},#{user.pwd})是SQL插入语句,它将User对象的loginname和pwd属性插入到user表中。
注意
此方法并不是直接返回自增的id,而是将自增的id赋值给了user对象的id值,所以我们如果想获取自增id,那么我们应该使用user.getId()的方法来获取。
相关文章:
Mybatis获取主键自增的方法
原本的方法 使用原本的JDBC去获取主键自增的方法如下图所示: 在这段代码中,通过连接对象 conn 的 prepareStatement 方法创建了一个PreparedStatement对象,并将SQL语句和 RETURN_GENERATED_KEYS 常量作为参数传递给该方法。这意味着执行SQL…...
strip 、objdump、objcopy 差异与区别
strip 、objdump、objcopy 差异与区别 strip 命令用于从已编译的可执行文件或目标文件中移除调试信息和其他非必要数据。这可以减小文件的大小,并且有助于保护源代码不被轻易反编译。通常,在发布软件时会使用 strip 命令来减少二进制文件的体积 objdump…...
本地phpstudy部署算命系统,用户端是H5页面,支持微信支付宝支付,支持微信支付宝登录
算命系统本地部署教程 0. 技术架构1. 启动Apache、MySQL服务2. 创建前台和后台两个网站3. Navicat连接数据库4. 登录后台是长这个样子5. 登录前台登录样子6. 代码结构是 0. 技术架构 前端:HTMLCSSJquery 后端:PHP 数据库:MySQL 1. 启动Ap…...
APP上架苹果App Store被拒原因及解决方案
苹果官方商店的审核大致分为三部分:预审、机审和人工审核,审核流程包括:初步提交、审核队列、审核过程、结果通知等步骤。#iOS App Store审核是非常严格的,很多很多APP,并不是能够一次上架成功,大部分APP都…...
docker-compose的下载
方式一:使用二进制文件安装。 GitHub官方下载安装(推荐,速度慢但不会出错) 1.GitHub官方下载(测试,已成功) curl -SL https://github.com/docker/compose/releases/download/v2.29.1/docker-c…...
h3c虚拟园区网概述
虚拟园区网概述 H3C虚拟园区网的解决方案 企业园区网作为企业网络的核心部分,连接了企业总部的办公、生产、研发、财务等多种重要的机 构。在网络建设中占有重要的地位。园区网内部终端种类众多,接入用户数量庞大,对网络的性能、可 靠性、可管理性都有较高的要求…...
云原生和安装Ubuntu 22系统
一.云原生简介 2004年开始,Google已在内部大规模地使用容器技术。 2008年,Google将 Cgroups合并进入了Linux内核。2013年,Docker项目正式发布。2014年,Kubernetes项目正式发布。2015年,由Google、Redhat 以及微软等大…...
HTTP代理IP如何助力旅游大数据领域?怎么建立安全的代理隧道连接?
在旅游行业,数据的准确性和实时性至关重要。随着大数据分析的兴起,HTTP代理IP成为了这一领域中不可或缺的工具。本文将探讨HTTP代理IP如何帮助旅游大数据领域,并介绍如何建立安全的代理隧道连接。 1. HTTP代理IP在旅游大数据领域的应用 1.1…...
AIGC从入门到实战:基础理论【核心算法与模型】
历史导读: 三、AIGC从入门到实战:基础理论【模型微调】 二、AIGC从入门到实战:AIGC基础理论 一、AIGC从入门到实战:为什么要了解AIGC 核心算法与模型 在人工智能生成内容(AIGC)领域,技术的飞速进步催生了一系列高效且创新的生成模型&…...
极狐GitLab 17.2发布了哪些 JH-Only 的功能?
极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…...
css中的高度塌陷
CSS高度塌陷(或称为高度坍塌)是指在某些特定情况下,元素的高度无法被正确计算或显示的现象。这通常发生在具有浮动属性的元素或使用绝对定位的元素周围。 原因 高度塌陷通常发生在父元素包含着一个或多个浮动元素时。由于浮动元素被移出了正…...
怎样使用sudo的时候不需要输入密码?
在Ubuntu等Linux系统下,经常要在个人账户使用sudo命令来执行一些需要root权限的命令,但是需要输入该账户的密码,有时候显得很繁琐, 那么怎样使用sudo的时候不需要输入密码呢? 有如下两种方法: 常规方法1…...
kettle的Javascript组件获取T-1天和T+1天
// 获取T-1的时间 var currentDate new Date(); currentDate.setDate(currentDate.getDate() - 1); var currentYear currentDate.getFullYear(); var currentMonth (0 (currentDate.getMonth() 1)).slice(-2); var currentDay (0 currentDate.getDate()).slice(-2); va…...
YoloV8改进策略:Block改进|LeYOLO,一种用于目标检测的新型可扩展且高效的CNN架构|复现LeYolo,轻量级Yolo改进
摘要 LeYOLO是在YOLO系列,特别是可能受到YOLOv8启发的基础上进行的一系列改进,旨在提升目标检测模型的高效性、可扩展性和精度。其主要特点包括: 高效骨干网络缩放方法: LeYOLO借鉴了倒置瓶颈(Inverted Bottleneck&am…...
ODX(Open Diagnostic Data Exchange)简介
ODX(Open Diagnostic Data Exchange)是一种由ASAM制定的开放标准,用于描述和交换ECU(电子控制单元)诊断数据,广泛应用于车辆诊断。ODX文件采用XML格式,包含通讯参数,如ISO15765-2/3时间参数。 ASAM(Association for Standardisation of Automation and Measuring Syst…...
记一次CSDN认证模块后端未校验漏洞
前言 作为一个程序员,一直充满好奇心,没事就喜欢找找漏洞,试想一下某些程序是否存在某些鉴权等漏洞,目前该漏洞已提交官方,且影响不大,现分享分析过程用于各位技术学习。 漏洞分析 https://i.csdn.net/#…...
【图机器学习系列】(一)图机器学习简介
微信公众号:leetcode_algos_life,代码随想随记 小红书:412408155 CSDN:https://blog.csdn.net/woai8339?typeblog ,代码随想随记 GitHub: https://github.com/riverind 抖音【暂未开始,计划开始】…...
全网最详细,从一堆字符串,精确抓取想要日期时间的实战2.0
前言: 前面我们知道了,怎么从一堆带有中文、英文、日期时间的字符串里面抓取需要的日期时间,但是我们实现的只是抓取第一个日期时间,那我们怎么实现,抓取第二个,或者任一一个日期时间呢? 一、思路分析 1、数…...
24/8/15算法笔记 dp策略迭代 价值迭代
策略迭代: 策略迭代从某个策略开始,计算该策略下的状态价值函数。它交替进行两个步骤:策略评估(Policy Evaluation)和策略改进(Policy Improvement)。在策略评估阶段,计算给定策略下…...
【MMdetection改进】换遍MMDET主干网络之SwinTransformer-Tiny(基于MMdetection)
OpenMMLab 2.0 体系中 MMYOLO、MMDetection、MMClassification、MMSelfsup 中的模型注册表都继承自 MMEngine 中的根注册表,允许这些 OpenMMLab 开源库直接使用彼此已经实现的模块。 因此用户可以在MMYOLO 中使用来自 MMDetection、MMClassification、MMSelfsup 的主…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
