SQL中插入数据,获取新增数据的id主键

方法一:使用Mybatis plus自带的insert()方法

entity

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("student")
public class Student{
    @ApiModelProperty("主键")
    @TableId(type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("姓名")
    @TableField("name")
    private String name;
}

Mapper

@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}

service

@Service
public class StudentService {
//引入mapper文件
@Autowired
private StudentMapper studentMapper;
//调用Mybatis自带的insert方法
studentMapper.insert(student);
//获取主键值
Integer id = student.getId();
}

方法二:自定义insert()方法

mapper

int insertStduent(Stduent stduent);

xml,注:一定要标注上这几个值,开启主键映射,否则会获取不到生成的主键值

useGeneratedKeys="true" keyProperty="id" keyColumn="id"

<insert id="insertStudent" parameterType="com.entity.Student" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
        insert into student
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="name != null and name != ''">name</if>
        </trim>
        <trim prefix="values(" suffix=")" suffixOverrides=",">
            <if test="name != null and name != ''">#{name}</if>
        </trim>
</insert>

service同上

SQL Server 获取自动生成的主键 ID 的方法与其他数据库略有不同。当使用 JDBC 的 PreparedStatement 执行 INSERT 操作,可以通过传递一个额外的参数来指定要返回的自动生成的主键 ID。具体步骤如下: 1. 在 INSERT 语句包含 OUTPUT 关键字,并将要返回的主键 ID 列名作为参数。 例如,假设你要向名为 users 的表插入一条记录,并且该表的主键列名为 id,则插入语句可能如下所示: ``` INSERT INTO users (name, email) OUTPUT inserted.id VALUES (?, ?) ``` 2. 使用 PreparedStatement 的 getGeneratedKeys() 方法获取生成的主键 ID。 例如,代码可能如下所示: ``` PreparedStatement pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, "John"); pstmt.setString(2, "john@example.com"); int affectedRows = pstmt.executeUpdate(); if (affectedRows == 0) { throw new SQLException("Creating user failed, no rows affected."); } try (ResultSet generatedKeys = pstmt.getGeneratedKeys()) { if (generatedKeys.next()) { int id = generatedKeys.getInt(1); System.out.println("Generated ID: " + id); } else { throw new SQLException("Creating user failed, no ID obtained."); } } ``` 在这个示例,我们首先将 PreparedStatement 的第二个参数设置为 Statement.RETURN_GENERATED_KEYS,以指示 JDBC 驱动程序返回生成的主键。然后,我们通过调用 executeUpdate() 方法来执行 INSERT 语句。如果该操作成功执行,则使用 getGeneratedKeys() 方法获取生成的主键 ID。最后,我们从 ResultSet 对象获取生成的主键 ID 并将其打印到控制台上。 请注意,如果插入语句有多个自动生成的主键,则可以使用多个参数来指定要返回的主键 ID 列名。 希望这可以帮助你解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值