JDBC Statement RETURN_GENERATED_KEYS返回自动生成的ID
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相关推荐
- IDEA自动生成序列化ID
问题描述:在IDEA中开发Java代码,我们在创建一个类时有时需要为该类创建一个序列化ID 解决方法: 第一步:通过File-->Settings-->Editor-->Inspec ...
- idea系列:Intellij idea自动生成序列化id 快捷键
操作 进入setting→inspections→serialization issues→选择图中的选项.serializable class without 'serialVersionUID' ...
- 怎么获取插入的最新自动生成的ID
在MySQL 的插入数据使用自增ID 这种场景,有的时候我们需要获得最新的自增ID,比如获取最新的用户ID.常见的做法是执行一次查询,max 或者order by 倒序获取最大的ID(低效.存在并发问 ...
- idea 自动生产序列吗,IDEA自动生成序列化Id
实体对象实现了java.io.Serializable接口后,一般都会提供一个serialVersionUID以做版本区分.在idea里,可以通过设置来快速生成serialVersionUID. 设置 ...
- Intellij idea用快捷键自动生成序列化id
默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...
- JDBC中事务、批量操作、大数据类型、获取自动生成的主键、等用法
1 事务的用法 事务的ACID属性: 通俗的说事务:指一组操作,要么都成功执行,要么都不执行-->原子性在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性事务发生前 ...
- sqlaction 更新至 v0.2.1.0,自动生成 JDBC 代码的数据库持久层工具
开发四年只会写业务代码,分布式高并发都不会还做程序员? 0.2.1.0 2019-04-17 calvin * 新增拦截器"@@STA ...
- ES批量索引写入时的ID自动生成算法
对bulk request的处理流程: 1.遍历所有的request,对其做一些加工,主要包括:获取routing(如果mapping里有的话).指定的timestamp(如果没有带timestamp ...
- 【Kafka】Kafka broker id 解释以及 自动生成id
1.概述 转载:https://honeypps.com/mq/kafka-params-analysis-of-broker-id/ 2.Kafka参数broker.id详解 kafka在启动服务之 ...
最新文章
- Oracle ORA-03137: TTC protocol internal error : [12333] 故障分析
- ubuntu 14.04 使用apt-get出现如下问题解决办法
- Java排序算法之——希尔排序
- 【管理】乔布斯:A级人才的自尊心不需要你呵护
- Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果...
- Pokémon Go火遍全球,开启全民捕捉小精灵的时代
- 【easy】234. Palindrome Linked List
- 须使用visual c 内联汇编语言开发,在VisualC 中使用内联汇编
- Spring MVC文件上传示例教程 - 单个和多个文件
- ICCV2021 新增数据集汇总 | 含时序动作定位、时空行为检测、弱光目标检测等!...
- 饿了么java_eleme-openapi-java-sdk
- H5常用代码:适配方案5
- js和jquery给iframe src赋值的3种方法
- MybatisPlus代码生成器的使用
- 什么软件测试情侣头像,情侣头像另一半怎么找,请问什么软件可以找出
- 32位计算机64位计算机实质,4G内存电脑安装32位还是64位win7系统?实际详细性能测试!...
- Quasi-globally Optimal and Near/True Real-time Vanishing Point Estimation in Manhattan World 论文阅读学习
- 今日分享|闪魔钢化膜5.8又来了/iPhone数据线2条10.8/adidas三叶草同款89/空气炸锅/内裤3条14.9/更多...
- ssm基于javaweb的医疗健康知识管理系统设计与实现 毕业设计-附源码131903
- 腾讯音乐、网易云音乐殊途同归?