`
zjx2388
  • 浏览: 1331225 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

mysql获取刚insert的记录ID

阅读更多

 当数据库表的主键使用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;
	}

 

 

分享到:
评论

相关推荐

    mysql的插入问题 怎么获得自动增长的ID

    - **MyISAM**:由于MyISAM使用独立的文件存储自动增长的ID值,即使在删除了一些记录并重启MySQL服务后,新的记录ID也会继续从上一个最大ID值加1开始计算,即第18条记录的ID将是18。 - **InnoDB**:重启MySQL服务后,...

    PHP获取MySql新增记录ID值的3种方法

    本文将详细介绍三种在PHP中获取MySQL新增记录ID值的方法,并分析它们的适用场景和潜在问题。 1. **使用SQL查询获取最大ID** 这种方法是通过执行`SELECT MAX(id) FROM table`来获取表中id的最大值。例如: ```php ...

    Mysql中LAST_INSERT_ID()的函数使用详解

    在MySQL数据库中,LAST_INSERT_ID()函数是一个非常实用的工具,尤其在处理多表关联或者需要获取最新插入记录的自增ID时。该函数的主要作用是返回最近一次执行的INSERT或UPDATE语句对具有AUTO_INCREMENT属性的列所...

    轻松掌握MySQL函数中的last_insert_id()

    在MySQL中,`last_insert_id()` 是一个非常有用的函数,它允许我们获取最后一条INSERT操作自动生成的ID值。这个函数通常与具有自动增长特性的主键字段一起使用,例如INT类型的`id`字段,当插入新记录时,MySQL会自动...

    MYSQL 小技巧 -- LAST_INSERT_ID

    - 然而,这种方法是非线程安全的,即在多线程环境下,可能存在无法获取到最新插入记录ID的风险,特别是在高并发的环境下。 - SELECT MAX(id) 通常适用于单个线程操作,当数据插入操作非常频繁,并且多个客户端或...

    PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID

    在PHP中,当我们执行了一个INSERT操作来添加新的记录到具有 AUTO_INCREMENT 主键的MySQL数据库表后,有时我们需要获取新插入记录的唯一标识符,即ID。`mysql_insert_id()` 函数正是为此目的而设计的。它能返回最近一...

    mysql雪花算法生成唯一整型ID主键的实现方法

    MySQL 雪花算法生成唯一整型ID主键的实现主要针对大数据环境下,需要大量生成全局唯一ID的需求。雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性...

    MYSQL 小技巧 — LAST_INSERT_ID

    标题提到的"MYSQL 小技巧 — LAST_INSERT_ID"着重讨论了MySQL中获取自增ID的两种方法:`LAST_INSERT_ID()`和`mysql_insert_id()`的区别以及它们在不同情况下的适用性。 首先,`LAST_INSERT_ID()`函数是MySQL提供的...

    Java获取最后插入MySQL记录的自增ID值的3种方法

    在Java编程中,当我们在MySQL数据库中执行插入操作并希望获取新插入记录的自增ID时,有多种方法可以实现这一需求。以下是三种常见的方法,适用于不同的场景。 **方法一:使用PreparedStatement的RETURN_GENERATED_...

    Oracle插入数据时获取自增ID

    在Oracle中,如果需要获取刚插入的数据的ID值,可以使用`CURRVAL`属性,它返回最近一次调用`NEXTVAL`所生成的值。例如,在插入数据后立即查询`seq_atable.CURRVAL`: ```sql SELECT seq_atable.CURRVAL FROM dual; `...

    java获取新insert数据自增id的实现方法

    Java获取新insert数据自增id的实现方法 Java获取新insert数据自增id的实现方法主要介绍了在Java中获取新insert数据自增id的实现方法。该方法在实际应用中非常重要,因其可以对主从表结构的设计产生重要影响。 在...

    自动生成insert语句的工具

    这些工具一般会扫描数据库表结构,获取每一行数据,并将其转换为符合SQL语法的INSERT语句。用户可能需要提供数据库连接信息,包括数据库服务器地址、数据库名、用户名和密码,以及选择要导出的特定表。 描述中的...

    使用MySQL的LAST_INSERT_ID来确定各分表的唯一ID值

    在MySQL数据库中,为了确保数据记录的唯一性,通常会在每个表中设置一个带有`AUTO_INCREMENT`属性的`ID`字段。然而,在分表的情况下,由于各分表的`ID`字段同样使用`AUTO_INCREMENT`,会导致无法区分来自不同分表的...

    MyBatis insert操作插入数据之后返回插入记录的id

    在上面的示例中,我们可以看到insert元素中设置了keyProperty="id"和useGeneratedKeys="true"两个属性,这样可以在插入数据之后获取对应的记录id。 在Java代码中,我们可以使用Mapper接口来调用insert方法,并获取...

    mysql取得自动增长的主键值

    - **标准方法:** 使用`INSERT`语句插入数据后,可以通过`LAST_INSERT_ID()`函数或`getGeneratedKeys()`方法来获取刚插入记录的自增ID。 - **示例代码:** 下面的Java示例展示了如何使用JDBC API来插入一条记录并...

    Mysql insert语句

    MySQL的INSERT语句是用于向数据库表中添加新记录的关键命令。它允许您根据需要提供特定的值或从其他查询中获取数据。以下是对标题和描述中提到的五种常用INSERT方法的详细解释: 1. **VALUES参数后单行插入**: 当...

    利用mysql事务特性实现并发安全的自增ID示例

    总之,理解并有效利用MySQL的事务特性,如InnoDB的行级锁定和`LAST_INSERT_ID()`函数,可以在并发环境下保证自增ID的安全生成,避免冲突和重复。对于大型分布式系统,这样的设计是必不可少的,能够为业务逻辑提供...

Global site tag (gtag.js) - Google Analytics