ps = conn.prepareStatement("insert into test(name) value(?)",Statement.RETURN_GENERATED_KEYS);
ps.setString(1, "test");
ps.execute();
rs = ps.getGeneratedKeys();
int id=0;//保存生成的ID
if (rs != null&&rs.next()) {
id=rs.getInt(1)
}
有时候,在用insert插入数据后,想获得刚插入记录的ID,可以利用JDBC的getGeneratedKeys获得INSERT插入后生成的主键ID。本例数据库为mysql,主键ID为int类型,用auto_increment生成。
以下为主要的java代码 :
ps = conn.prepareStatement("insert into test(name) value(?)",Statement.RETURN_GENERATED_KEYS);
ps.setString(1, "test");
ps.execute();
rs = ps.getGeneratedKeys();
int id=0;//保存生成的ID
if (rs != null&&rs.next()) {
id=rs.getInt(1)
}
ps = conn.prepareStatement("insert into test(name) value(?)",Statement.RETURN_GENERATED_KEYS);
ps.setString(1, "test");
ps.execute();
rs = ps.getGeneratedKeys();
int id=0;//保存生成的ID
if (rs != null&&rs.next()) {
id=rs.getInt(1)
}
本例用到的主要方法为以下两个,可以查阅JDK参考文档:
1、PreparedStatement prepareStatement ( String sql, int autoGeneratedKeys) throws SQLException(在java.sql.Connection接口中)
2、ResultSet getGeneratedKeys () throws SQLException(在java.sql.PreparedStatement 接口中)
分享到:
相关推荐
为了获取这个值,我们需要在插入语句中使用`LAST_INSERT_ID()`函数,并在`Statement`对象上设置`RETURN_GENERATED_KEYS`属性: ```java try (Connection conn = DriverManager.getConnection(url, user, password))...
### MySQL的插入问题:如何获取自动增长的ID ...在使用Java程序通过JDBC接口插入记录时,推荐使用`PreparedStatement`的`getGeneratedKeys()`方法来获取自动生成的ID,以确保数据的完整性和安全性。
本文将重点讲解如何使用JDBC保存一个Java对象到数据库,并获取插入后自动生成的主键值。 #### 二、关键概念 1. **PreparedStatement**:预编译的SQL语句,它可以提高执行效率,并有助于防止SQL注入攻击。 2. **...
在使用Hibernate JPA进行数据操作时,我们可能会遇到一个特定的情况,即在执行完插入(insert)操作后,系统会自动执行一个`select last_insert_id()`的查询来获取刚刚生成的自增主键值。这个问题在Spring MVC集成...
在Ibatis中,只需在Mapper XML文件中的`<insert>`标签中设置`useGeneratedKeys="true"`和`keyProperty="id"`,就可以让数据库自动生成主键。 4. **雪花算法(Snowflake Algorithm)**: 在分布式环境下,为了保证...
在对应的Java代码中,当你调用`sqlSession.insert("insertUser", user)`方法插入一条记录后,`user.getId()`就会返回数据库自动生成的主键值。这是因为MyBatis通过`useGeneratedKeys`和`keyProperty`属性与数据库...
在MySQL部分,项目可能涉及到了数据库的设计,包括创建新闻表,定义字段如ID(主键)、标题、内容、发布日期等。SQL语句如`CREATE TABLE`、`INSERT INTO`、`SELECT`、`UPDATE`和`DELETE`等都会在项目中得到应用。 ...
`tk.mybatis.mapper.common.IdsMapper`则提供了处理主键ID的基本操作。 在Mapper接口中,你可以像平常一样定义CRUD方法。由于使用了UUID作为主键,插入数据时MyBatis会自动为新记录生成一个UUID。例如: ```java ...
在MyBatis中,可以通过在`<insert>`标签中添加`useGeneratedKeys="true"`和`keyProperty`属性来自动获取并填充插入语句后返回的自增ID值。 **示例代码:** ```xml <insert id="insert" parameterType=...
1. **增加(Insert)**:使用JDBC的PreparedStatement对象,可以创建预编译的SQL插入语句,将用户输入的数据安全地插入到数据库中。记得在事务管理中正确提交或回滚操作。 2. **删除(Delete)**:通过编写删除特定...
对于插入操作,Spring JDBC提供了SimpleJdbcInsert类,它可以自动生成INSERT语句并处理主键自增的问题。对于存储过程的调用,SimpleJdbcCall则扮演了关键角色,它可以方便地包装和执行数据库的存储过程。 在实际...
- **标准方法:** 使用`INSERT`语句插入数据后,可以通过`LAST_INSERT_ID()`函数或`getGeneratedKeys()`方法来获取刚插入记录的自增ID。 - **示例代码:** 下面的Java示例展示了如何使用JDBC API来插入一条记录并...
// 设置主键IdType为 AUTO,表示数据库ID自增 @TableId(value = "id", type = IdType.AUTO) private Integer id; private String lastName; private String email; private Integer gender; private Integer...
其次,MyBatis 3.3.1 支持返回主键的功能,这对于那些需要在插入后立即获取新生成主键的应用非常有用。在MySQL等支持自增主键的数据库中,可以通过设置useGeneratedKeys="true"和keyProperty="id"来实现这一功能: ...
在这个例子中,`SimpleJdbcInsert`类被用来简化插入操作,而`executeAndReturnKey()`方法执行插入并返回新生成的主键。 3. **使用JdbcTemplate进行数据库查询** 查询操作可以使用`query()`方法完成,它可以接受...
总结来说,要在MyBatis-Plus中利用Oracle Sequence生成主键,需完成数据库Sequence的创建、项目配置(包括JDBC驱动、数据源、全局配置)、实体类注解以及数据库操作。这样的设置确保了在插入新记录时,MyBatis-Plus...
2. `SimpleJdbcInsert`:这是一个专门用于插入数据的工具类,可以自动生成INSERT语句,并自动处理主键生成策略。 3. `SimpleJdbcCall`:用于调用存储过程和函数,支持输入、输出和InOut参数。 4. `...
在生成PDF报表时,我们可以利用`Document`类来定义文档结构,`Paragraph`、`List`等类添加文本内容,`Table`类创建表格,`Font`类设置字体样式,以及`Image`类插入图片。例如: ```java Document document = new ...