需求:使用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
查询数据库:
如上所示,刚刚插入的记录主键id为15
相关推荐
首先,我们需要在MyBatis的Mapper接口中定义一个插入并返回主键ID的方法。这里我们以一个`UserDao`接口为例,定义一个`insertAndGetId`方法: ```java public interface UserDao { public int insertAndGetId(User...
### Spring MVC + Spring + MyBatis + Maven + MySQL 环境搭建详解 #### 一、概述 在软件开发领域,尤其是Java Web开发中,**Spring MVC + Spring + MyBatis + Maven + MySQL**组合是一种非常流行的开发模式。本文...
例如,药品表可能包含药品ID、名称、规格、价格等,而医生表则有医生ID、姓名、科室等字段,确保每个字段都与主键直接相关。 Spring Boot是Java开发中的微服务框架,它简化了创建独立的、生产级别的基于Spring的...
在Python3中操作MySQL数据库并插入一条数据,然后获取并返回这条数据的主键id是数据库编程中常见的需求。这一过程可以分为几个关键步骤:数据库连接、执行插入操作、获取主键id以及事务提交。下面详细说明每个步骤...
MyBatis插件机制允许开发者自定义拦截器,以在SQL执行前后插入额外的操作。在这个场景下,我们可以利用插件来对输入参数中的敏感数据进行加密,并对查询结果进行解密。主要涉及两个关键接口:`ParameterHandler`和`...
`tk.mybatis.mapper.common.IdsMapper`则提供了处理主键ID的基本操作。 在Mapper接口中,你可以像平常一样定义CRUD方法。由于使用了UUID作为主键,插入数据时MyBatis会自动为新记录生成一个UUID。例如: ```java ...
可以使用MyBatis的Mapper接口和XML配置文件来编写SQL语句,例如插入、查询和删除留言。Mapper接口提供了方法,而XML文件中定义了对应的SQL逻辑,MyBatis会自动将方法调用转化为数据库操作。 接着,创建Thymeleaf的...
本文将详细介绍 MyBatis 在 insert 插入操作时返回主键 ID 的配置,包括 MySQL 和 Oracle 两个数据库的用法。 MySQL 用法 在 MySQL 中,MyBatis 提供了一个简单的配置来返回插入的主键 ID。我们可以在 insert 语句...
该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用。 一、项目概述 1、项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主键自增:1、自增ID容易被爬虫遍历...
总结一下,MyBatis 中插入数据并返回插入记录的 ID 主要涉及以下知识点: 1. 使用 `<insert>` 标签定义插入语句。 2. 设置 `useGeneratedKeys="true"` 开启获取自增主键的功能。 3. 使用 `keyProperty` 指定对象的...
在处理插入数据到数据库并返回主键的场景时,MyBatis提供了两种主要的方法。这两种方法都是在映射文件(Mapper.xml)中配置,允许你在插入记录后获取自动生成的主键值。 **方式一:使用`useGeneratedKeys`和`...
在XML映射文件中,我们看到对应的SQL语句采用了Oracle特有的序列来生成主键ID。这是因为在Oracle中,通常我们需要为每条新记录分配一个唯一的序列号,这里使用`SEQ_B_LEASE_INFORMATION.nextval`来获取序列的下一个...
但是,如果我们使用`useGeneratedKeys`属性,插入成功后,`UserDomain`实体类的`userId`属性将被赋值为具体的主键id值。 使用MyBatis插入数据返回主键的功能可以帮助我们更方便地实现数据的持久化操作。
- 设计数据库表结构,例如创建一个名为 `demo` 的表,包含 `id`(主键)、`name`、`description` 等字段。 - 创建对应的 Java 实体类,使用 Mybatis-Plus 的注解如 `@TableName("demo")`,字段上的 `@TableField` ...
在MyBatis的insert元素中,我们可以设置keyProperty="id"用来指定要返回的主键id,而useGeneratedKeys="true"则用于获取自增长的ID。 在上面的示例中,我们可以看到insert元素中设置了keyProperty="id"和...
- **表结构设计**:创建学生表,包括ID(主键)、姓名、性别、年龄、班级等字段。 - **SQL操作**:使用INSERT插入学生信息,UPDATE更新信息,DELETE删除记录,以及SELECT查询所有、单个或条件筛选的学生数据。 - ...
MyBatis在处理MySQL时,只需在插入语句中忽略主键字段即可,如下所示: ```xml <sql id='TABLE_NAME'>TEST_USER <insert id="insert" parameterType="User"> insert into <include refid="TABLE_NAME" /> ...
- `selectById()`:根据主键ID查询数据,通常对应于`selectOne(String sqlId, Object parameter)`。 - `updateById()`:根据主键ID更新数据,对应于`update(String sqlId, Object parameter)`。 - `deleteById()`:...
Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长...