`

Mybatis中添加一条数据的同时返回自增主键ID

 
阅读更多

"在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插入数据返回自增主键详细配置

    Mybatis插入数据以后只会返回影响的数据库行数,如果是插入一条数据成功则返回1,失败返回零,插入多条返回插入成功的数量。 通过注解或者xml配置无法直接返回自增的主键。Mybatis插入数据返回的自增主键会自动设置...

    mybatis获取自增ID

    在MyBatis中,可以通过在`&lt;insert&gt;`标签中添加`useGeneratedKeys="true"`和`keyProperty`属性来自动获取并填充插入语句后返回的自增ID值。 **示例代码:** ```xml &lt;insert id="insert" parameterType=...

    详解mybatis plus使用insert没有返回主键的处理

    在使用MyBatis Plus (MP) 进行数据操作时,有时可能会遇到插入数据后无法获取自增主键的情况。本文将深入分析这个问题,并提供解决方案。 首先,MyBatis Plus 是 MyBatis 的一个扩展库,它提供了很多方便的数据操作...

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

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

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

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

    利用Java的MyBatis框架获取MySQL中插入记录时的自增主键

    本文将详细讲解如何在MyBatis中利用MySQL的自增主键功能,以便在插入新记录后获取生成的唯一ID。 首先,我们要明白MySQL中的自增主键。自增主键是一种特殊的字段类型(通常是`INT`),每当插入新的记录时,其值会...

    支持主键自增的数据库获取主键值.zip

    在对应的Java代码中,当你调用`sqlSession.insert("insertUser", user)`方法插入一条记录后,`user.getId()`就会返回数据库自动生成的主键值。这是因为MyBatis通过`useGeneratedKeys`和`keyProperty`属性与数据库...

    MyBatis中insert操作返回主键的实现方法

    在MyBatis中,当你执行一个插入(insert)操作时,通常默认情况下,MyBatis不会返回新插入记录的主键值,而是返回插入的记录条数。然而,在某些业务场景下,我们可能需要获取到新插入记录的主键,以便进行后续的操作...

    MyBatis_insert

    但可以通过设置`useGeneratedKeys`和`keyProperty`属性获取自增主键的值,例如: ```xml &lt;insert id="insertUser" useGeneratedKeys="true" keyProperty="id"&gt; INSERT INTO users (name, email) VALUES (#{name}...

    使用mybatis-plus的insert方法遇到的问题及解决方法(添加时id值不存在异常)

    总之,避免 MyBatis-Plus 插入时的“id 值不存在异常”,关键在于正确地配置 `@TableId` 注解,以及确保插入的数据类型与数据库中的字段类型匹配。同时,根据业务需求选择合适的主键生成策略,如手动输入、自增等。...

    myBatis使用分享

    - **创建数据库和表**:创建一个名为`mybatis`的数据库,并在其中创建一个`users`表,包含`id`(主键,自增)、`name`(字符串类型)和`age`(整型)字段。 - **配置MyBatis**:编写`conf.xml`配置文件,设置...

    MyBatis的关联映射-资料.rar

    8. **外键策略**:MyBatis提供多种外键处理策略,如`useGeneratedKeys`和`keyProperty`,帮助处理自增主键和关联主键的生成。 9. **关联映射的性能优化**:通过合理设计关联映射,如避免N+1查询问题,使用子查询或...

    oracle里建一个自增字段示例

    它可以用来自动为表中的某列生成唯一的值,例如自增主键。 **创建序列:** 首先,我们需要创建一个序列。下面的SQL语句展示了如何创建名为`SYS_SYS_LOG_id`的序列: ```sql CREATE SEQUENCE SYS_SYS_LOG_id ...

    MybatisPlus中插入数据后获取该对象主键值的实现

    // 设置主键IdType为 AUTO,表示数据库ID自增 @TableId(value = "id", type = IdType.AUTO) private Integer id; private String lastName; private String email; private Integer gender; private Integer...

    jsp+Struts2 +mybatis 注册 登录 入门demo

    在`test`数据库中,`user`表存储了用户注册的数据,包括用户自定义的字段以及一个自增的`id`字段,作为主键。 5. **实体类(User类)**:在Java代码中,`User`类代表了`user`表中的一条记录。每个字段对应表中的一...

    Mybatis-plus.zip

    3. **主键策略**:Mybatis-plus提供了多种主键生成策略,包括ID_WORKER(雪花算法)、UUIDHex、increment(自增)等,开发者可以根据需求选择合适的策略。通过@Id和@TableId注解可以指定主键字段和生成策略。 4. **...

    mybatis-plus-join-master.zip

    除了连表查询,MyBatis-Plus 还提供了分页查询、条件构造器、批量插入、主键自增、乐观锁、多数据源等实用功能,极大地提升了开发效率和代码的可读性。 9. **实战应用** 在实际项目中,MyBatis-Plus 的连表查询常...

Global site tag (gtag.js) - Google Analytics