首页 > 其他分享 >mybatis 插入时 返回主键

mybatis 插入时 返回主键

时间:2024-07-19 14:52:05浏览次数:11  
标签:主键 插入 键值 user mybatis id 属性

在MyBatis中,如果你希望在插入数据时返回主键值,可以通过在<insert>标签中使用useGeneratedKeys="true"属性和keyProperty属性来实现。useGeneratedKeys属性表示使用数据库生成的主键,而keyProperty属性则指定用来接收这个生成主键的属性名。

以下是一个简单的例子:

假设你有一个用户表(user),该表的主键是id,并且这个id是由数据库自动生成的。你可以在MyBatis的Mapper XML文件中这样定义插入操作:

<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
  INSERT INTO user (name, email) VALUES (#{name}, #{email})
</insert>

在这个例子中,useGeneratedKeys="true"告诉MyBatis使用数据库生成的主键,而keyProperty="id"则告诉MyBatis将生成的主键值设置到对象的id属性中。

然后,在你的Mapper接口中,你可以这样定义insertUser方法:

int insertUser(User user);

当你调用这个方法并传入一个User对象时,MyBatis会执行插入操作,并将生成的主键值设置到传入对象的id属性中。插入操作执行后,方法会返回插入的记录数,通常是1(表示插入了一条记录)。

如果你只想获取生成的主键值,而不关心插入的记录数,你可以在插入操作之后直接从传入对象的id属性中获取它。例如:

User user = new User();
user.setName("John Doe");
user.setEmail("[email protected]");
mapper.insertUser(user);
int generatedId = user.getId(); // 获取生成的主键值

标签:主键,插入,键值,user,mybatis,id,属性
From: https://www.cnblogs.com/del88/p/18311465

相关文章

  • 流式查询2、mybatis的ResultHandler 每次查询返回定义的500条
    流式查询2、mybatis通过用ResultHandler流式查询,每次查询返回定义的500条,再去批量处理(可异步并发):packagecom.aswatson.cdc.redis.schedule;importcom.aswatson.cdc.redis.common.lock.DistLock;importcom.aswatson.cdc.redis.common.lock.DistLockRegistry;importcom.as......
  • springboot~mybatis-pagehelper原理与使用
    原理PageHelper是一个用于MyBatis的分页插件,pagehelper-spring-boot-starter是其在SpringBoot中的集成组件。下面简要介绍PageHelper的分页原理:PageHelper的分页原理拦截器机制:PageHelper通过MyBatis的拦截器机制实现分页功能。它会在SQL执行前拦截并修改SQL语句,添加分页相......
  • 独家揭秘丨GreatSQL 没开Binlog时多线程插入数据性能劣化之谜
    一、问题发现在一次数据迁移中,用到了INSERTINTOt1SELECT*FROMt2这样的SQL用来搬迁大表,为了提高插入效率关闭了Binlog,考虑用多线程来插入提高速度。表的类型信息和插入效率如下所示。测试环境:Linuxnode-76-114.19.90-17.ky10.aarch64,128核CPU,512G内存。GreatSQL参......
  • springboot+vue+mybatis销售评价系统+PPT+论文+讲解+售后
    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,销售评价系统当然也不能排除在外。销售评价系统是以实际运用为开发背景,运用软件工程开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件系统进行需求分......
  • Postgresql主键自增的方法
    Postgresql主键自增的方法一.方法(一)使用 serialPRIMARYKEY插入数据 二.方法(二)......
  • SSM 整合(Spring + MyBatis;Spring + Spring MVC)
    1.SSM整合(Spring+MyBatis;Spring+SpringMVC)文章目录1.SSM整合(Spring+MyBatis;Spring+SpringMVC)2.引入相关依赖3.SSM整合3.1创建包结构4.Spring整合+MyBatis4.1编写jdbc.properties4.2编写DataSourceConfig数据源配置4.3编写MyBatisConf......
  • SpringBoot整合MyBatis+MySQL
    一、添加mysql驱动mysqlmysql-connector-java二、添加MyBatis依赖org.mybatis.spring.bootmybatis-spring-boot-starter3.0.1三、添加配置spring:datasource:name:xx-datasourcedriverClassName:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://127.0.0.1:3306/xx-......
  • java 使用mybatis时 模糊查询
    有两种方法,分别是直接字符串拼接,使用mybatis的bind函数绑定再查方法1<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"&g......
  • 超靠谱教程速成MyBatis!
    MyBatis1.内容介绍2.介绍MyBatis什么是MyBatis?MyBatis是优秀的持久层框架MyBatis使用XML将SQL与程序解耦,便于维护MyBatis学习简单,执行高效,是JDBC的延伸MyBatis开发流程引入MyBatis依赖创建核心配置文件创建实体(Entity)类创建Mapper映射文件初始化SessionFactory......
  • 从Mybatis-Plus开始认识SerializedLambda
    从Mybatis-Plus开始认识SerializedLambda背景对于使用过Mybatis-Plus的Java开发者来说,肯定对以下代码不陌生:@TableName("t_user")@DatapublicclassUser{ privateStringid; privateStringname; privateStringpassword; privateStringgender; privateintage;......