当数据库表的主键使用mysql的自增ID时,获取一条刚插入的记录的ID可以 使用:
rs = pstmt.getGeneratedKeys();
if(rs.next()) {
personId = rs.getInt(1);
}
附程序中的一个例子:
public int addPerson(Person person) {
int personId = 0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = "INSERT INTO t_person(personname, gender, age, address, duty, phone, description, receivesms) VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
conn = DB.getConn();
pstmt = DB.prepareStmt(conn, sql);
pstmt.setString(1, person.getPersonname());
pstmt.setString(2, person.getGender());
pstmt.setInt(3, person.getAge());
pstmt.setString(4, person.getAddress());
pstmt.setString(5, person.getDuty());
pstmt.setString(6, person.getPhone());
pstmt.setString(7, person.getDescription());
pstmt.setInt(8, person.isReceivesms() ? 1 : 0);
pstmt.executeUpdate();
rs = pstmt.getGeneratedKeys();
if(rs.next()) {
personId = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(pstmt);
DB.close(conn);
}
return personId;
}
分享到:
相关推荐
- **MyISAM**:由于MyISAM使用独立的文件存储自动增长的ID值,即使在删除了一些记录并重启MySQL服务后,新的记录ID也会继续从上一个最大ID值加1开始计算,即第18条记录的ID将是18。 - **InnoDB**:重启MySQL服务后,...
本文将详细介绍三种在PHP中获取MySQL新增记录ID值的方法,并分析它们的适用场景和潜在问题。 1. **使用SQL查询获取最大ID** 这种方法是通过执行`SELECT MAX(id) FROM table`来获取表中id的最大值。例如: ```php ...
在MySQL数据库中,LAST_INSERT_ID()函数是一个非常实用的工具,尤其在处理多表关联或者需要获取最新插入记录的自增ID时。该函数的主要作用是返回最近一次执行的INSERT或UPDATE语句对具有AUTO_INCREMENT属性的列所...
在MySQL中,`last_insert_id()` 是一个非常有用的函数,它允许我们获取最后一条INSERT操作自动生成的ID值。这个函数通常与具有自动增长特性的主键字段一起使用,例如INT类型的`id`字段,当插入新记录时,MySQL会自动...
- 然而,这种方法是非线程安全的,即在多线程环境下,可能存在无法获取到最新插入记录ID的风险,特别是在高并发的环境下。 - SELECT MAX(id) 通常适用于单个线程操作,当数据插入操作非常频繁,并且多个客户端或...
在PHP中,当我们执行了一个INSERT操作来添加新的记录到具有 AUTO_INCREMENT 主键的MySQL数据库表后,有时我们需要获取新插入记录的唯一标识符,即ID。`mysql_insert_id()` 函数正是为此目的而设计的。它能返回最近一...
MySQL 雪花算法生成唯一整型ID主键的实现主要针对大数据环境下,需要大量生成全局唯一ID的需求。雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性...
标题提到的"MYSQL 小技巧 — LAST_INSERT_ID"着重讨论了MySQL中获取自增ID的两种方法:`LAST_INSERT_ID()`和`mysql_insert_id()`的区别以及它们在不同情况下的适用性。 首先,`LAST_INSERT_ID()`函数是MySQL提供的...
在Java编程中,当我们在MySQL数据库中执行插入操作并希望获取新插入记录的自增ID时,有多种方法可以实现这一需求。以下是三种常见的方法,适用于不同的场景。 **方法一:使用PreparedStatement的RETURN_GENERATED_...
在Oracle中,如果需要获取刚插入的数据的ID值,可以使用`CURRVAL`属性,它返回最近一次调用`NEXTVAL`所生成的值。例如,在插入数据后立即查询`seq_atable.CURRVAL`: ```sql SELECT seq_atable.CURRVAL FROM dual; `...
Java获取新insert数据自增id的实现方法 Java获取新insert数据自增id的实现方法主要介绍了在Java中获取新insert数据自增id的实现方法。该方法在实际应用中非常重要,因其可以对主从表结构的设计产生重要影响。 在...
这些工具一般会扫描数据库表结构,获取每一行数据,并将其转换为符合SQL语法的INSERT语句。用户可能需要提供数据库连接信息,包括数据库服务器地址、数据库名、用户名和密码,以及选择要导出的特定表。 描述中的...
在MySQL数据库中,为了确保数据记录的唯一性,通常会在每个表中设置一个带有`AUTO_INCREMENT`属性的`ID`字段。然而,在分表的情况下,由于各分表的`ID`字段同样使用`AUTO_INCREMENT`,会导致无法区分来自不同分表的...
在上面的示例中,我们可以看到insert元素中设置了keyProperty="id"和useGeneratedKeys="true"两个属性,这样可以在插入数据之后获取对应的记录id。 在Java代码中,我们可以使用Mapper接口来调用insert方法,并获取...
- **标准方法:** 使用`INSERT`语句插入数据后,可以通过`LAST_INSERT_ID()`函数或`getGeneratedKeys()`方法来获取刚插入记录的自增ID。 - **示例代码:** 下面的Java示例展示了如何使用JDBC API来插入一条记录并...
MySQL的INSERT语句是用于向数据库表中添加新记录的关键命令。它允许您根据需要提供特定的值或从其他查询中获取数据。以下是对标题和描述中提到的五种常用INSERT方法的详细解释: 1. **VALUES参数后单行插入**: 当...
总之,理解并有效利用MySQL的事务特性,如InnoDB的行级锁定和`LAST_INSERT_ID()`函数,可以在并发环境下保证自增ID的安全生成,避免冲突和重复。对于大型分布式系统,这样的设计是必不可少的,能够为业务逻辑提供...