MyBatis主键返回

article/2025/9/16 0:44:58

这篇文章介绍了MyBatis的主键返回方法


一.需求分析

当我们表的主键设置为自增,且插入数据后需要主键id时,就要使用主键返回的方法,来获取当前插入数据的主键。
表如下:
在这里插入图片描述

二.主键返回

1.使用selectKey 标签

< selectKey >标签,keyProperty:设置为目标属性,resultType:设置返回值类型,order:值为after,before
after: sql之后执行,before: sql之前执行

示例:
StudentMapper接口

public interface StudentMapper {int insert(Student student);
}

StudentMapper.xml代码

    <insert id="insert" parameterType="com.hem.pojo.Student"><selectKey keyProperty="id" resultType="int" order="AFTER">select last_insert_id()</selectKey>insert into student (name,email,age)values (#{name},#{email},#{age});</insert>

test代码:

    @Testpublic void testInsert() throws IOException {//使用文件流读取核心配置文件SqlMapConfig.xmlInputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");//创建SqlSessionFactory工厂SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//取出sqlSession对象SqlSession sqlSession = factory.openSession();//完成查询操作StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);Student student = new Student("小白","12321",99);int num = studentMapper.insert(student);System.out.println(student.getId());sqlSession.commit();//关闭sqlSessionsqlSession.close();}

测试结果:
在这里插入图片描述

2. 设置< insert >便签的属性

设置 useGeneratedKeys=”true”,然后再把 keyProperty 设置为目标属性就 OK 了

示例:
StudentMapper接口

public interface StudentMapper {int insert(Student student);
}

StudentMapper.xml代码:

<insert id="insert" parameterType="com.hem.pojo.Student" useGeneratedKeys="true" keyProperty="id">insert into student (name,email,age)values (#{name},#{email},#{age});</insert>

test代码:

    @Testpublic void testInsert() throws IOException {//使用文件流读取核心配置文件SqlMapConfig.xmlInputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");//创建SqlSessionFactory工厂SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);//取出sqlSession对象SqlSession sqlSession = factory.openSession();//完成查询操作StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);Student student = new Student("小白","12321",99);int num = studentMapper.insert(student);System.out.println(student.getId());sqlSession.commit();//关闭sqlSessionsqlSession.close();}

测试结果:
在这里插入图片描述

在这里插入图片描述

202210161704日


http://chatgpt.dhexx.cn/article/cpYsK2Pd.shtml

相关文章

SQL主键

在SQL中主键是唯一标示表中每一行的列或一组列。SQL可以使用PRIMARY KEY约束为表创建主键。如果主键只包含一列&#xff0c;则可以将PRIMARY KEY约束定义为列约束 。每个表只能有一个主键。参与主键的所有列必须定义为NOT NULL。在SQL中如果没有为这些列指定NOT NULL约束&#…

PostgreSQL主键自增

1.创建表设置主键自增长 CREATE TABLE tab_name(id SERLAL primary key,username varchar,password varchar )SERLAL 为自增关键字 2.修改表字段为主键自增 1 创建关联序列 CREATE SEQUENCE tab_id_seq START 1; -- tab_id_seq 为序列名称 -- 1 为序列起始数2.1 在字段默认…

关于Adobe软件安装提示FATAL: Payload ‘Camera Profiles Installer …information not found in Media_db.问题解决方法

安装Photoshop CS6失败&#xff1a;FATAL: Payload ‘Camera Profiles Installer …information not found in Media_db. 安装失败描述 产生原因&#xff1a;出现以上情况是因为之前系统安装过Adobe相关软件&#xff0c;并且卸载不干净导致的。 解决方法&#xff1a;找到系统盘…

Nature综述:微生物构成的氮循环网络(收藏)

微生物构成的氮循环网络 The microbial nitrogen-cycling network 翻译&#xff1a;翟志文 中科院遗传发育所 责编&#xff1a;刘永鑫 中科院遗传发育所 Nature Reviews Microbiology, [31.851] https://doi.org/10.1038/nrmicro.2018.9 Published: 05 February 2018 第一作者…

特定功能基因定量检测

1 检测对象 特定功能基因指的是具有某种特定作用的酶的编码基因&#xff0c;通过对该酶的基因进行qPCR定量&#xff0c;来确定该基因在样本中的拷贝数。目前研究较多的主要是氮循环、碳循环、硫循环、砷循环等相关的功能基因。微基生物可以利用qPCR定量检测样本中的碳循环、氮…

Quantile g-computation的介绍及R实现

目录 介绍 模型 qgcomp包的使用 例1&#xff0c;线性模型 例2&#xff1a;条件OR&#xff0c;logistic模型中的边际OR 例3&#xff1a;调整协变量&#xff0c;绘制估计值 例4&#xff1a;非线性&#xff08;和非同质性&#xff09; 例5&#xff1a;比较模型拟合和进一步…

Nature综述:微生物构成的氮循环网络

导读论文ID综述结构综述内容 1.综述研究背景、研究目的、研究内容概述2.氮全球生化循环圈&#xff1a;全球的氮库存、氮转化过程、氮通量3.微生物构成的氮化合物的转化4.固氮作用5.羟胺氧化成一氧化氮以及进一步氧化成亚硝酸盐6.亚硝酸盐向硝酸盐的氧化7.硝酸盐还原为亚硝酸盐的…

活性氧Propiconazole-d3 (nitrate),CAS No. 2699607-26-4

产品名称&#xff1a;活性氧Propiconazole-d3 (nitrate)&#xff0c;CAS No. 2699607-26-4 产地&#xff1a;西安 规格&#xff1a;1mg 5mg 10mg 纯度&#xff1a;99% 用途&#xff1a;仅用于科研 状态&#xff1a;固体/粉末 储藏条件&#xff1a;冷藏-20℃ 温馨提示&#xff…

TestProject Python SDK入门

使用TestProject Python SDK&#xff0c;您可以使用TestProject平台的功能执行Selenium和Appium测试。这意味着您将受益于HTML和PDF中的自动测试报告&#xff0c;Selenium浏览器驱动程序的自动更新和配置&#xff0c;协作报告仪表板&#xff0c;以及更多其他功能。 安装TestPro…

cas:2699607-26-4 Propiconazole-d3 (nitrate) 活性氧

cas:2699607-26-4 Propiconazole-d3 (nitrate) 活性氧 Propiconazole-d3 (nitrate) 是 Propiconazole nitrate 的氘代物。 英文名称&#xff1a;Propiconazole-d3 (nitrate&#xff09; 分子量&#xff1a;408.25 分子式&#xff1a;C15H15D3Cl2N4O5 cas:2699607-26-4 活性…

广东生态所孙蔚旻团队EST发表利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...

广东省生态环境技术研究所孙蔚旻团队ES&T发表&#xff1a;利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径 第一作者&#xff1a;张苗苗 通讯作者&#xff1a;孙蔚旻 通讯单位&#xff1a;广东省生态环境技术研究所 论文DOI&#…

【英语学习】【化学】几个与氮(Nitrogen)有关的化学词汇 (1)

文章目录 nitrogen&#xff1a;氮&#xff08;元素&#xff09;niter: 硝石nitric acid: 硝酸nitrate: *n.* 硝酸盐; 硝酸根potassium nitrate: 硝酸钾nitrous acid&#xff1a;亚硝酸nitrite&#xff1a;*n.* 亚硝酸盐; 亚硝酸根sodium nitrite&#xff1a;亚硝酸钠小结 nitro…

Nature综述:微生物构成的氮循环网络(必读)

文章目录 微生物构成的氮循环网络大纲摘要亮点名词解析背景和内容概述Box 1 | 氮全球生化循环圈&#xff1a;全球的氮库存、氮转化过程、氮通量图1 | 微生物转化氮化合物图2 | 催化氮循环中关键的四种反应的酶氮转化反应固氮作用氨氧化成羟胺羟胺氧化成一氧化氮和亚硝酸盐亚硝酸…

ISME:长期进化实验揭示脱硫弧菌的硝酸盐耐受机制

关注我们 一起探索微生物领域的奥妙 摘要 环境中硝酸盐的升高抑制了硫酸盐还原菌&#xff08;SRB&#xff09;中重要微生物的硫酸盐还原作用&#xff0c;在硝酸盐含量不断升高的环境中&#xff0c;一些SRB也许会通过硝酸盐呼吸在高氮环境下生存&#xff0c;但是缺少硝酸盐还原酶…

es like and or_广东生态所孙蔚旻团队ESamp;T发表利用稳定同位素示踪宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...

广东省生态环境技术研究所孙蔚旻团队ES&T发表&#xff1a;利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径 第一作者&#xff1a;张苗苗 通讯作者&#xff1a;孙蔚旻 通讯单位&#xff1a;广东省生态环境技术研究所 论文DOI&#…

测试用例管理系统 --Nitrate

测试用例管理系统 –Nitrate 最近在网上找开源的测试用例管理系统&#xff0c;发现了Nitrate。 https://github.com/Nitrate/Nitrate搭建环境很容易&#xff0c;说一下使用的初步体验。虽然有一些小BUG&#xff0c; 而且也不支持 excel 用例的导入导出&#xff0c;只支持xml 格…

IP 数据报结构和各字段含义

IP 数据报位于 OSI 七层模型中的网络层&#xff0c;对应与 TCP/IP 四层模型中的网络层&#xff08;也称网际层&#xff09;。网络层用来处理网络上流动的数据包&#xff08;网络传输中最小的数据单元&#xff09;&#xff0c;规定了怎样的路径把数据包传输到目标计算机&#xf…

IP数据报的检验(计算机网络)

IP数据报检验 IP数据报检验的计算过程引入检验原理题目案例及分析题目要求分析 计算过程图解总结 IP数据报检验的计算过程 本篇文章只介绍IP数据报的检验过程&#xff0c;不对原理做过多讲解。内容通俗易懂&#xff0c;请放心大胆食用&#xff01; 引入 IP数据报检验只检验数据…

IP数据报首部检验和原理

首部检验和 首部检验和&#xff0c;只检验数据报的首部&#xff0c;不包括数据部分。 在发送方&#xff0c;先把IP数据报首部划分为许多16位字的序列&#xff0c;并把检验和字段置为0&#xff0c;用反码算术运算把所有16位字相加&#xff0c;将得到的和的反码写入检验和字段。…

IP数据报首部检验和的详细计算过程

目录 IP数据报检验的计算过程 引入 检验原理 题目案例及分析 题目要求 分析 计算过程图解 总结 IP数据报检验的计算过程 本篇文章只介绍IP数据报的检验过程&#xff0c;不对原理做过多讲解。内容通俗易懂&#xff0c;请放心大胆食用&#xff01; 引入 IP数据报检验只检验…