"在Mybatis中,添加一条数据的同时返回其自增主键ID值"
方法:在mapper.xml文件中进行配置keyProperty属性.
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.oolin.User">
insert into user(userName,password)
values(#{userName},#{password})
</insert>
ps:userGeneratedKeys="true"(其配置要求是数据库本身具备主键自增功能,如Mysql,SqlServer就可以配置useGeneratedKeys=true.不支持主键自增的数据库其useGeneratedKeys的值不能为true.
实例:
insert中指定了keyProperty="userId",其中userId是插入的User对象的Id属性.
1.POJO
public class User {
private int userId;
private String userName;
private String password;
//setter and getter
}
2.UserDao
public interface UserDao {
public int addUser(User user);
}
3.测试
User user = new User();
user.set....
userDao.addUser(user);
Integer id = user.getId();
4.其中的Id即为返回的自增主键.
分享到:
相关推荐
Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。 通过注解或者xml配置无法直接返回自增的主键。Mybatis插入数据返回的自增主键会自动设置...
在MyBatis中,可以通过在`<insert>`标签中添加`useGeneratedKeys="true"`和`keyProperty`属性来自动获取并填充插入语句后返回的自增ID值。 **示例代码:** ```xml <insert id="insert" parameterType=...
在使用MyBatis Plus (MP) 进行数据操作时,有时可能会遇到插入数据后无法获取自增主键的情况。本文将深入分析这个问题,并提供解决方案。 首先,MyBatis Plus 是 MyBatis 的一个扩展库,它提供了很多方便的数据操作...
Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 Mybatis 是一个基于 Java 的持久层框架,它提供了对数据库的访问和操作的功能。今天,我们将分享一个关于 Mybatis 插入一条或批量插入 返回带有自增长...
首先,我们需要在MyBatis的Mapper接口中定义一个插入并返回主键ID的方法。这里我们以一个`UserDao`接口为例,定义一个`insertAndGetId`方法: ```java public interface UserDao { public int insertAndGetId(User...
本文将详细讲解如何在MyBatis中利用MySQL的自增主键功能,以便在插入新记录后获取生成的唯一ID。 首先,我们要明白MySQL中的自增主键。自增主键是一种特殊的字段类型(通常是`INT`),每当插入新的记录时,其值会...
在对应的Java代码中,当你调用`sqlSession.insert("insertUser", user)`方法插入一条记录后,`user.getId()`就会返回数据库自动生成的主键值。这是因为MyBatis通过`useGeneratedKeys`和`keyProperty`属性与数据库...
在MyBatis中,当你执行一个插入(insert)操作时,通常默认情况下,MyBatis不会返回新插入记录的主键值,而是返回插入的记录条数。然而,在某些业务场景下,我们可能需要获取到新插入记录的主键,以便进行后续的操作...
但可以通过设置`useGeneratedKeys`和`keyProperty`属性获取自增主键的值,例如: ```xml <insert id="insertUser" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, email) VALUES (#{name}...
总之,避免 MyBatis-Plus 插入时的“id 值不存在异常”,关键在于正确地配置 `@TableId` 注解,以及确保插入的数据类型与数据库中的字段类型匹配。同时,根据业务需求选择合适的主键生成策略,如手动输入、自增等。...
- **创建数据库和表**:创建一个名为`mybatis`的数据库,并在其中创建一个`users`表,包含`id`(主键,自增)、`name`(字符串类型)和`age`(整型)字段。 - **配置MyBatis**:编写`conf.xml`配置文件,设置...
8. **外键策略**:MyBatis提供多种外键处理策略,如`useGeneratedKeys`和`keyProperty`,帮助处理自增主键和关联主键的生成。 9. **关联映射的性能优化**:通过合理设计关联映射,如避免N+1查询问题,使用子查询或...
它可以用来自动为表中的某列生成唯一的值,例如自增主键。 **创建序列:** 首先,我们需要创建一个序列。下面的SQL语句展示了如何创建名为`SYS_SYS_LOG_id`的序列: ```sql CREATE SEQUENCE SYS_SYS_LOG_id ...
// 设置主键IdType为 AUTO,表示数据库ID自增 @TableId(value = "id", type = IdType.AUTO) private Integer id; private String lastName; private String email; private Integer gender; private Integer...
在`test`数据库中,`user`表存储了用户注册的数据,包括用户自定义的字段以及一个自增的`id`字段,作为主键。 5. **实体类(User类)**:在Java代码中,`User`类代表了`user`表中的一条记录。每个字段对应表中的一...
3. **主键策略**:Mybatis-plus提供了多种主键生成策略,包括ID_WORKER(雪花算法)、UUIDHex、increment(自增)等,开发者可以根据需求选择合适的策略。通过@Id和@TableId注解可以指定主键字段和生成策略。 4. **...
除了连表查询,MyBatis-Plus 还提供了分页查询、条件构造器、批量插入、主键自增、乐观锁、多数据源等实用功能,极大地提升了开发效率和代码的可读性。 9. **实战应用** 在实际项目中,MyBatis-Plus 的连表查询常...