`
nkadun
  • 浏览: 55308 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

JDBC插入并返回自增长主键

阅读更多
刚发现有这个功能,原来一直在琢磨hibernate怎么实现而且防止并发的,原来是我土了……

//mysql
CREATE TABLE foo(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(16), PRIMARY KEY(id));


//java
String sql = "INSERT INTO foo(name) VALUES(?)"
PreparedStatement st = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
st.setString(1, "bar");
int row = st.executeUpdate();
ResultSet rs = st.getGeneratedKeys();
if(rs.next())
    int generatedKey = rs.getInt(1); //只读第一列^_^
分享到:
评论

相关推荐

    jdbc 插入记录并返回自增主键值

    当我们需要向MySQL数据库插入新记录并获取自增主键的值时,JDBC提供了相应的功能来实现这一需求。本篇文章将详细讲解如何通过JDBC在Java中执行插入操作并获取自增主键。 首先,确保你已经在项目中引入了MySQL的JDBC...

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

    在MySQL中,经常需要用到自动增长的ID字段作为表的主键,特别是在频繁进行数据插入操作时。本文将深入探讨以下几个方面: 1. **理解自动增长ID的工作原理** 2. **在删除记录后重新插入时ID的变化情况** 3. **不同...

    mysql取得自动增长的主键值

    - **示例代码:** 下面的Java示例展示了如何使用JDBC API来插入一条记录并获取自增ID。 ```java try { getConnect gc = new getConnect(); Connection conn = gc.getconn(); Statement stmt = conn....

    MyBatis获取插入记录的自增长字段值(ID)

    " + "\n刚刚插入记录的主键自增长值为:" + spares.getId()); return new JsonResponse(); } ``` 在上面的代码中,我们可以看到,spares.getId()方法可以获取插入记录的自增长字段值。 需要注意的是,在xml文件中...

    JDBC6和JDBC14

    3. **Statement的getGeneratedKeys()方法**:返回由INSERT、UPDATE或DELETE语句生成的自动增长键,这对于获取新插入行的主键非常有用。 4. **RowSet接口的增强**:JDBC6支持类型4的JavaBeans Compliant RowSets,...

    Spring Jdbc的jar包

    它可以根据数据库表结构自动构建INSERT语句,并且支持返回新生成的主键值,这对于那些具有自动增长主键的表非常有用。 此外,Spring JDBC的`JdbcOperations`接口扩展了`JdbcTemplate`,提供了一组通用的JDBC操作,...

    JDBC连接实验

    - `id`:主键,自增长 - `name`:用户名 - `password`:密码 - `email`:电子邮箱 - `id_number`:身份证号 - `job`:职业 - `hobbies`:爱好 - `message`:留言 ##### 4. 创建Servlet处理请求 除了编写JSP页面和...

    使用JDBC访问数据库

    JDBC提供了与数据库建立连接、发送SQL语句并处理结果的基本方法。 在本案例中,我们将使用Eclipse IDE通过JDBC来实现与MySQL数据库的连接。主要步骤包括创建数据库和表、导入MySQL驱动、处理异常以及实现基本的CRUD...

    SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分表【全网最新】.doc

    在现代软件开发中,随着业务量的增长,单一数据库往往难以满足高性能、高并发的需求,因此分库分表成为了一种常见的解决方案。传统的分库分表方案如Mycat虽然强大,但因其bug较多,使得许多人转向Sharding-JDBC等...

    JavaSE-原生jdbc-每日作业卷答案1

    最后,通过`executeUpdate()`执行SQL,创建名为`stu`的表,包含字段`id`(主键,自动增长)、`name`(varchar类型,长度20)和`gender`(varchar类型,长度2)。由于创建表操作不返回行数,因此`executeUpdate()`...

    Mybatis使用useGeneratedKeys获取自增主键的方法

    这个特性在处理像MySQL、SQL Server等支持自动增长字段的数据库时特别有用,可以避免进行额外的查询来获取新插入记录的主键。本文将深入探讨`useGeneratedKeys`的工作原理以及它在批量插入和`ON DUPLICATE KEY ...

    hibernate主键生成策略

    - **实现原理**:利用数据库自身的自增特性来实现主键的自动增长。 - **应用场景**:适用于数据量较大或并发操作频繁的情况。 #### 3. `sequence` - **描述**:`sequence`策略同样依赖于数据库特性,通过序列...

    JDBC 增删改的操作.docx

    - `id`:整型(int),作为主键且自增长。 - `name`:变长字符串(varchar(25)),存储学生的姓名。 - `age`:整型(int),存储学生的年龄。 创建数据库和表后,我们需要引入相应的jar包,这里提到了`druid-1.1.10...

    jdbc基础和参考

    主键增长策略: 1.increment:自动增长 select max(id) from table; 找到最大值之后+1赋给要持久化的对象 2.assigned:指派 hibernate不在自动生成主键值,需要你在插入时自己指明 3.hilo:高低值算法,由数据库表...

    3、jsp jdbc 数据库管理器中的操作1

    - **自动增长(AUTO_INCREMENT)**: 用于主键字段,每次插入新记录时自动递增。 - **非空约束(NOT NULL)**: 确保某些字段不会为空,如`id int AUTO_INCREMENT PRIMARY KEY NOT NULL`。 - **默认值(DEFAULT)**...

    使用Java JDBC实现一个简单的学生成绩管理系统.txt

    - `id`:整型,主键,自动增长。 - `name`:字符串类型,长度限制为20字符,存储学生的姓名。 - `score`:浮点型,存储学生的成绩。 ##### 3.2 系统功能 - **添加学生信息**:从控制台输入学生的姓名,并为其...

    教案JDBC连接数据库教学.pdf

    在本教学案例中,主要讲解了如何使用JDBC连接MySQL数据库并添加数据。 首先,我们需要创建一个MySQL数据库表`person`,用于存储用户信息。表结构如下: ```sql CREATE TABLE person ( id INT(3) AUTO_INCREMENT ...

    Java软件开发实战 Java基础与案例开发详解 18-5 JDBC应用示例 共6页.pdf

    - `id`:主键,通常为自增长整型。 - `username`:用户名,字符串类型。 - `password`:密码,字符串类型。 - `email`:电子邮件地址,字符串类型。 表结构的创建可以通过SQL语句来实现,例如: ```sql CREATE ...

    mybatis获取自增ID

    在数据库操作中,经常需要插入数据到表中,而表中的主键字段通常是自增长的。当数据插入成功后,往往需要获取这个自增长的ID,以便于后续的业务处理或者关联其他表的数据。因此,在MyBatis中提供了一种机制来获取自...

    数据库系统应用与开发--实验四.doc

    - Step2中,通过修改表结构使主键自动增长解决了插入数据时的错误。在实际开发中,通常推荐使用数据库自增主键,以简化程序逻辑。 - Step3展示了如何在不修改表结构的情况下,通过编程方式解决ID生成问题。然而,...

Global site tag (gtag.js) - Google Analytics