Java 语句 RETURN_GENERATED_KEYS 指示生成的密钥应可用于检索的常量。

语法

语句中的字段RETURN_GENERATED_KEYS() 声明为:

复制

    int RETURN_GENERATED_KEYS = 1;

下面的代码演示如何使用 Java Statement.RETURN_GENERATED_KEYS

示例 1

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class Main {private static final String URL = "jdbc:mysql://localhost/testdb";private static final String USERNAME = "root";private static final String PASSWORD = "";public static void main(String[] args) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);String insert = "INSERT INTO orders (username, order_date) VALUES ('foobar', '2007-12-13')";Statement stmt = conn.createStatement();stmt.executeUpdate(insert, Statement.RETURN_GENERATED_KEYS);ResultSet keys = stmt.getGeneratedKeys();int lastKey = 1;while (keys.next()) {lastKey = keys.getInt(1);//    ww  w  .    d e   m  o2    s . c   o   m}System.out.println("Last Key: " + lastKey);conn.close();}
}
另一种方法:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class Main {private static final String URL = "jdbc:mysql://localhost/testdb";private static final String USERNAME = "root";private static final String PASSWORD = "root";public static void main(String[] args) throws Exception {Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);String insert = "INSERT INTO orders (username, order_date) VALUES ('foobar', '2007-12-13')";Statement stmt = conn.createStatement();String[] id_col = {"id"};stmt.executeUpdate(insert, id_col);ResultSet keys = stmt.getGeneratedKeys();int lastKey = 1;while (keys.next()) {lastKey = keys.getInt(1);}System.out.println("Last Key: " + lastKey);conn.close();}
}

示例 2

复制

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class Main {public static void main(String[] args) throws Exception {String url = "jdbc:mysql://localhost/testdb";String username = "root";String password = "";Class.forName("com.mysql.jdbc.Driver");Connection conn = null;/*w   w  w   .d   e  m o  2   s .    c o   m*/try {conn = DriverManager.getConnection(url, username, password);conn.setAutoCommit(false);Statement st = conn.createStatement();st.execute("INSERT INTO orders (username, order_date) VALUES ('java', '2007-12-13')",Statement.RETURN_GENERATED_KEYS);ResultSet keys = st.getGeneratedKeys();int id = 1;while (keys.next()) {id = keys.getInt(1);}PreparedStatement pst = conn.prepareStatement("INSERT INTO order_details (order_id, product_id, quantity, price) VALUES (?, ?, ?, ?)");pst.setInt(1, id);pst.setString(2, "1");pst.setInt(3, 10);pst.setDouble(4, 100);pst.execute();conn.commit();System.out.println("Transaction commit...");} catch (SQLException e) {if (conn != null) {conn.rollback();System.out.println("Connection rollback...");}e.printStackTrace();} finally {if (conn != null && !conn.isClosed()) {conn.close();}}}
}

以前下一个

相关

  • Java 语句 executeUpdate(String sql, int columnIndexes[])
  • Java 语句执行更新(String sql, String 列名 [])
  • Java 语句 get生成密钥()
  • 爪哇语句RETURN_GENERATED_KEYS
  • Java 语句获取MaxRows()
  • Java 语句获取最大字段大小()
  • Java 语句 getQueryTimeout()

JDBC Statement RETURN_GENERATED_KEYS返回自动生成的ID相关推荐

  1. IDEA自动生成序列化ID

    问题描述:在IDEA中开发Java代码,我们在创建一个类时有时需要为该类创建一个序列化ID 解决方法: 第一步:通过File-->Settings-->Editor-->Inspec ...

  2. idea系列:Intellij idea自动生成序列化id 快捷键

    操作 进入setting→inspections→serialization issues→选择图中的选项.serializable class without 'serialVersionUID' ...

  3. 怎么获取插入的最新自动生成的ID

    在MySQL 的插入数据使用自增ID 这种场景,有的时候我们需要获得最新的自增ID,比如获取最新的用户ID.常见的做法是执行一次查询,max 或者order by 倒序获取最大的ID(低效.存在并发问 ...

  4. idea 自动生产序列吗,IDEA自动生成序列化Id

    实体对象实现了java.io.Serializable接口后,一般都会提供一个serialVersionUID以做版本区分.在idea里,可以通过设置来快速生成serialVersionUID. 设置 ...

  5. Intellij idea用快捷键自动生成序列化id

    默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...

  6. JDBC中事务、批量操作、大数据类型、获取自动生成的主键、等用法

    1 事务的用法 事务的ACID属性: 通俗的说事务:指一组操作,要么都成功执行,要么都不执行-->原子性在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性事务发生前 ...

  7. sqlaction 更新至 v0.2.1.0,自动生成 JDBC 代码的数据库持久层工具

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   0.2.1.0        2019-04-17        calvin             * 新增拦截器"@@STA ...

  8. ES批量索引写入时的ID自动生成算法

    对bulk request的处理流程: 1.遍历所有的request,对其做一些加工,主要包括:获取routing(如果mapping里有的话).指定的timestamp(如果没有带timestamp ...

  9. 【Kafka】Kafka broker id 解释以及 自动生成id

    1.概述 转载:https://honeypps.com/mq/kafka-params-analysis-of-broker-id/ 2.Kafka参数broker.id详解 kafka在启动服务之 ...

最新文章

  1. Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
  2. ubuntu 14.04 使用apt-get出现如下问题解决办法
  3. Java排序算法之——希尔排序
  4. 【管理】乔布斯:A级人才的自尊心不需要你呵护
  5. Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果...
  6. Pokémon Go火遍全球,开启全民捕捉小精灵的时代
  7. 【easy】234. Palindrome Linked List
  8. 须使用visual c 内联汇编语言开发,在VisualC 中使用内联汇编
  9. Spring MVC文件上传示例教程 - 单个和多个文件
  10. ICCV2021 新增数据集汇总 | 含时序动作定位、时空行为检测、弱光目标检测等!...
  11. 饿了么java_eleme-openapi-java-sdk
  12. H5常用代码:适配方案5
  13. js和jquery给iframe src赋值的3种方法
  14. MybatisPlus代码生成器的使用
  15. 什么软件测试情侣头像,情侣头像另一半怎么找,请问什么软件可以找出
  16. 32位计算机64位计算机实质,4G内存电脑安装32位还是64位win7系统?实际详细性能测试!...
  17. Quasi-globally Optimal and Near/True Real-time Vanishing Point Estimation in Manhattan World 论文阅读学习
  18. 今日分享|闪魔钢化膜5.8又来了/iPhone数据线2条10.8/adidas三叶草同款89/空气炸锅/内裤3条14.9/更多...
  19. ssm基于javaweb的医疗健康知识管理系统设计与实现 毕业设计-附源码131903
  20. 腾讯音乐、网易云音乐殊途同归?

热门文章

  1. 由于文件组 'PRIMARY 中的磁盘空间不足,无法为数据库 'newnet' 分配新页。请删除文件组中的对象、将其他文件添加到文件组或者为文件组中的现有文件启用自动增长,以便增加必要的空间。
  2. 【开发工具】SVN使用教程总结
  3. 鲍威尔讲话打击美元指数 国际金价大幅上涨
  4. 乐优商城(三十)——授权中心
  5. Centos Stream 8安装oracle19c
  6. c语言13 6,C语言学习笔记13
  7. AutoSAR系列讲解 - 交流专区
  8. php单例模式的常见应用场景
  9. Chrome源代码结构
  10. 对数线性模型(Log-Linear Model)一种判别式模型的创建框架