`
m635674608
  • 浏览: 5027754 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

MyBatis+MySQL 返回插入的主键ID

 
阅读更多

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值。

 

 

 

方法:在mapper中指定keyProperty属性,示例如下:

 

<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">
    insert into user(userName,password,comment)
    values(#{userName},#{password},#{comment})
</insert>

 

如上所示,我们在insert中指定了keyProperty="userId",其中userId代表插入的User对象的主键属性。

 

 

 

User.java

 

public class User {
    private int userId;
    private String userName;
    private String password;
    private String comment;
    
    //setter and getter
}

 

UserDao.java

 

public interface UserDao {

    public int insertAndGetId(User user);

}

 

测试:

 

User user = new User();
user.setUserName("chenzhou");
user.setPassword("xxxx");
user.setComment("测试插入数据返回主键功能");

System.out.println("插入前主键为:"+user.getUserId());
userDao.insertAndGetId(user);//插入操作
System.out.println("插入后主键为:"+user.getUserId());

 

输出:

 

插入前主键为:0
插入后主键为:15

 

 

 

 

 

批量操作也一样

分享到:
评论

相关推荐

    MyBatis+MySQL 返回插入的主键ID的方法

    首先,我们需要在MyBatis的Mapper接口中定义一个插入并返回主键ID的方法。这里我们以一个`UserDao`接口为例,定义一个`insertAndGetId`方法: ```java public interface UserDao { public int insertAndGetId(User...

    springmvc+spring+mybatis+Maven+mysql环境搭建,附源码

    ### Spring MVC + Spring + MyBatis + Maven + MySQL 环境搭建详解 #### 一、概述 在软件开发领域,尤其是Java Web开发中,**Spring MVC + Spring + MyBatis + Maven + MySQL**组合是一种非常流行的开发模式。本文...

    数据库课程设计-医院药品管理系统,符合 3NDF 的规范数据库设计,Spring Boot + MyBatis + MySQL

    例如,药品表可能包含药品ID、名称、规格、价格等,而医生表则有医生ID、姓名、科室等字段,确保每个字段都与主键直接相关。 Spring Boot是Java开发中的微服务框架,它简化了创建独立的、生产级别的基于Spring的...

    Python3 操作 MySQL 插入一条数据并返回主键 id的实例

    在Python3中操作MySQL数据库并插入一条数据,然后获取并返回这条数据的主键id是数据库编程中常见的需求。这一过程可以分为几个关键步骤:数据库连接、执行插入操作、获取主键id以及事务提交。下面详细说明每个步骤...

    Mybatis+注解轻松实现脱敏

    MyBatis插件机制允许开发者自定义拦截器,以在SQL执行前后插入额外的操作。在这个场景下,我们可以利用插件来对输入参数中的敏感数据进行加密,并对查询结果进行解密。主要涉及两个关键接口:`ParameterHandler`和`...

    spring boot整合mybatis利用Mysql实现主键UUID的方法

    `tk.mybatis.mapper.common.IdsMapper`则提供了处理主键ID的基本操作。 在Mapper接口中,你可以像平常一样定义CRUD方法。由于使用了UUID作为主键,插入数据时MyBatis会自动为新记录生成一个UUID。例如: ```java ...

    springboot+mybatis+thymeleaf实现简单的留言板

    可以使用MyBatis的Mapper接口和XML配置文件来编写SQL语句,例如插入、查询和删除留言。Mapper接口提供了方法,而XML文件中定义了对应的SQL逻辑,MyBatis会自动将方法调用转化为数据库操作。 接着,创建Thymeleaf的...

    MyBatis在insert插入操作时返回主键ID的配置(推荐)

    本文将详细介绍 MyBatis 在 insert 插入操作时返回主键 ID 的配置,包括 MySQL 和 Oracle 两个数据库的用法。 MySQL 用法 在 MySQL 中,MyBatis 提供了一个简单的配置来返回插入的主键 ID。我们可以在 insert 语句...

    spring-boot-mybatis-interceptor:mybatis自定义主键插件,通过该插件生成分布式唯一雪花ID作为数据库表的主键

    该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用。 一、项目概述 1、项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主键自增:1、自增ID容易被爬虫遍历...

    mybatis返回插入的id1

    总结一下,MyBatis 中插入数据并返回插入记录的 ID 主要涉及以下知识点: 1. 使用 `&lt;insert&gt;` 标签定义插入语句。 2. 设置 `useGeneratedKeys="true"` 开启获取自增主键的功能。 3. 使用 `keyProperty` 指定对象的...

    详解Java MyBatis 插入数据库返回主键

    在处理插入数据到数据库并返回主键的场景时,MyBatis提供了两种主要的方法。这两种方法都是在映射文件(Mapper.xml)中配置,允许你在插入记录后获取自动生成的主键值。 **方式一:使用`useGeneratedKeys`和`...

    mybatis+Oracle做批量导入时的坑

    在XML映射文件中,我们看到对应的SQL语句采用了Oracle特有的序列来生成主键ID。这是因为在Oracle中,通常我们需要为每条新记录分配一个唯一的序列号,这里使用`SEQ_B_LEASE_INFORMATION.nextval`来获取序列的下一个...

    MyBatis插入数据返回主键的介绍

    但是,如果我们使用`useGeneratedKeys`属性,插入成功后,`UserDomain`实体类的`userId`属性将被赋值为具体的主键id值。 使用MyBatis插入数据返回主键的功能可以帮助我们更方便地实现数据的持久化操作。

    spring Boot+mybatis-plus+Thymeleaf+MySql增删改查(含有分页+雪花Id)

    - 设计数据库表结构,例如创建一个名为 `demo` 的表,包含 `id`(主键)、`name`、`description` 等字段。 - 创建对应的 Java 实体类,使用 Mybatis-Plus 的注解如 `@TableName("demo")`,字段上的 `@TableField` ...

    MyBatis insert操作插入数据之后返回插入记录的id

    在MyBatis的insert元素中,我们可以设置keyProperty="id"用来指定要返回的主键id,而useGeneratedKeys="true"则用于获取自增长的ID。 在上面的示例中,我们可以看到insert元素中设置了keyProperty="id"和...

    java基于MySQL的学生管理系统

    - **表结构设计**:创建学生表,包括ID(主键)、姓名、性别、年龄、班级等字段。 - **SQL操作**:使用INSERT插入学生信息,UPDATE更新信息,DELETE删除记录,以及SELECT查询所有、单个或条件筛选的学生数据。 - ...

    mybatis自增主键文档

    MyBatis在处理MySQL时,只需在插入语句中忽略主键字段即可,如下所示: ```xml &lt;sql id='TABLE_NAME'&gt;TEST_USER &lt;insert id="insert" parameterType="User"&gt; insert into &lt;include refid="TABLE_NAME" /&gt; ...

    通用mybatis-MySQL增删改查CRUD源码

    - `selectById()`:根据主键ID查询数据,通常对应于`selectOne(String sqlId, Object parameter)`。 - `updateById()`:根据主键ID更新数据,对应于`update(String sqlId, Object parameter)`。 - `deleteById()`:...

    Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例

    Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长...

Global site tag (gtag.js) - Google Analytics