mysql插入一条数据后返回该数据的自增id

一.在mybatis中的加入useGeneratedKeys和keyProperty

例如:

  <insert id="insert" parameterType="com.hy.common.entity.User"
          useGeneratedKeys="true" keyProperty="id">
    insert into user (name, age)
    values ( #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})
  </insert>

二.取值示例

实体类:

package com.hy.common.entity;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;

    private String name;

    private Integer age;

    private String des;

    private static final long serialVersionUID = 1L;

    public User(Integer id, String name, Integer age, String des) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.des = des;
    }

    public User() {
        super();
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des == null ? null : des.trim();
    }

}

数据库表:

取出插入后的id值:

    @Override
    @Transactional(readOnly = false)
    public int insertUser() {
        User user = new User();
        user.setName("why");
        user.setAge(18);

        int count = userMapper.insert(user);
        System.out.println(count);   // 插入的条数
        int id = user.getId();   
        System.out.println(id); // 自增的id

        return id;
    }

输出:

1
3

插入后的表:

MySQL中,如果你想要插入一条带有自增主键的数据,你可以采取以下步骤: 1. 首先,确保你想要插入数据的表已经设置了一个自增的主键字段。这通常是通过在创建表时使用`AUTO_INCREMENT`属性来实现的。例如: ```sql CREATE TABLE example_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description TEXT ); ``` 在这个例子中,`id`字段被设置为自增主键。 2. 当插入数据时,你可以省略自增主键字段的部分。MySQL数据库将自动为该字段分配下一个可用的自增值。例如: ```sql INSERT INTO example_table (name, description) VALUES ('example_name', 'example_description'); ``` 这条`INSERT`语句没有指定`id`字段,因为它是自增的,数据库会自动填充。 3. 如果你想要明确地插入一个特定的自增ID值,尽管这通常不是推荐的做法,但也是可以实现的。你可以直接在`INSERT`语句中指定自增字段的值,但需要注意,这可能会导致与数据库中现有的自增值发生冲突。例如: ```sql INSERT INTO example_table (id, name, description) VALUES (1, 'example_name', 'example_description'); ``` 这条语句会将`id`设置为1,并插入一条数据。但如果表中已经存在ID为1的数据,或者已经有数据ID值大于1,这样做可能会产生问题。 请注意,不要在有多个客户端或多个会话同时插入数据时手动设置自增ID,因为这可能会导致自增ID值发生冲突。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

纯洁的小魔鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值