三种获得自动生成主键的方法,getGeneratedKeys,专用SQL和可更新的结果集

UDS诊断入门第一课:手把手教你玩转0x10会话控制服务(附ISO14229实战解析) 刚接触汽车电子诊断的工程师们,往往会被厚厚的ISO 14229标准文档和各种专业术语吓退。但就像学习编程要从"Hello World"开始一样,掌握UDS协议的最佳切入点就是0x10诊断会话控制服务。这个看似简单的服务,实际上是整个诊断系统的"钥匙"——它决定了ECU(电子控制单元)当前处于何种工作模式,直接影响着其他诊断服务的可用性。 在实际车辆诊断中,ECU默认处于DefaultSession模式,这种模式下许多高级诊断功能是被禁用的。想象一下你正在开发一个需要刷写ECU固件的工具,如果连最基本的会 阅读详情
 简单总结了一下我目前知道的方法。
  1. package test;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. /**
  7.  * 三种获得自动生成主键的方法。
  8.  * 
  9.  * @author 赵学庆 www.java2000.net
  10.  * 
  11.  */
  12. public class TestGetPK {
  13.   public static void main(String[] args) throws Exception {
  14.     Class.forName("com.gbase.jdbc.Driver");
  15.     String url = "jdbc:gbase://localhost/mytest";
  16.     Connection con = DriverManager.getConnection(url, "root", "111111");
  17.     System.out.println(getPK1(con));
  18.     System.out.println(getPK2(con));
  19.     System.out.println(getPK3(con));
  20.   }
  21.   /**
  22.    * 使用JDBC 3.0提供的 getGeneratedKeys。推荐使用
  23.    * 
  24.    * @param con
  25.    * @return
  26.    * @throws Exception
  27.    */
  28.   public static long getPK1(Connection con) throws Exception {
  29.     Statement stmt = con.createStatement();
  30.     stmt.executeUpdate("INSERT INTO t_type (name) values ('Can I Get the Auto Increment Field?')",
  31.         Statement.RETURN_GENERATED_KEYS);
  32.     int autoIncKeyFromApi = -1;
  33.     ResultSet rs = stmt.getGeneratedKeys();
  34.     if (rs.next()) {
  35.       autoIncKeyFromApi = rs.getInt(1);
  36.     }
  37.     return autoIncKeyFromApi;
  38.   }
  39.   /**
  40.    * 使用数据库自己的特殊SQL.
  41.    * 
  42.    * @param con
  43.    * @return
  44.    * @throws Exception
  45.    */
  46.   public static long getPK2(Connection con) throws Exception {
  47.     Statement stmt = con.createStatement();
  48.     stmt.executeUpdate("INSERT INTO t_type (name) values ('Can I Get the Auto Increment Field?')",
  49.         Statement.RETURN_GENERATED_KEYS);
  50.     int autoIncKeyFromFunc = -1;
  51.     ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID()");
  52.     if (rs.next()) {
  53.       autoIncKeyFromFunc = rs.getInt(1);
  54.     }
  55.     return autoIncKeyFromFunc;
  56.   }
  57.   /**
  58.    * 使用可更新的结果集。
  59.    * 
  60.    * @param con
  61.    * @return
  62.    * @throws Exception
  63.    */
  64.   public static long getPK3(Connection con) throws Exception {
  65.     Statement stmt = con.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
  66.         java.sql.ResultSet.CONCUR_UPDATABLE);
  67.     ResultSet rs = stmt.executeQuery("SELECT * FROM t_Type");
  68.     rs.moveToInsertRow();
  69.     rs.updateString("name", "AUTO INCREMENT here?");
  70.     rs.insertRow();
  71.     rs.last();
  72.     int autoIncKeyFromRS = rs.getInt("id");
  73.     return autoIncKeyFromRS;
  74.   }
  75. }
用Stata复现经典文献:上市公司全要素生产率(TFP)计算全流程(含LP/OP代码解读) 本文提供了使用Stata软件复现上市公司全要素生产率(TFP)计算的完整实战指南。重点解读了主流的Levinsohn-Petrin(LP)和Olley-Pakes(OP)半参数估计方法,通过详细的数据清洗、变量构建与价格平减步骤,手把手演示了如何准确测算TFP,并强调了LP方法在处理中国上市公司数据时的稳定性和适用性。 阅读详情

相关推荐

集成电路模拟版图入门-版图基础学习笔记(四)

第三部分:版图的准备 2. 设计规则 3) Design Rule 2. 设计规则 4) 规则定义 4.1 NW(N WELL) 2. 设计规则 4) 规则定义 4.1 NW(N WELL) 2. 设计规则 4) 规则定义 4.2 PO(Poly) 2. 设计规则 4) 规则定义 4.3 M1(Metal1) 2. 设计规则 4) 规则定义 4.4 VIA 3. DRC文件 3.1 DRC:Design Rule Check,设计规则检查。 3.2 DRC程序了解有关

weixin_52955333的博客 6737

【互联网常见问题】-分布式锁

在分布式系统中,分布式锁是一种常见的同步机制,用于在多个节点之间协调对共享资源的访问。以下是基于数据库、缓存(Redis)、以及ZooKeeper实现分布式锁的Java代码示例。

慕白Lee的博客 2万+

GNSS - PPP软件 - GAMP 在VS2019/2022下完成调试、跑通程序(超详细!)

WIN32;_DEBUG;_CONSOLE;O_WARNINGS;ENAGLO;ENACMP;ENAGAL;ENAQZS;NFREQ=3。

qq_43381998的博客 8251

mysql插入语句,获取自增列id

<insert id="insertSelective" parameterType="com.sunflower.rm.web.domain.model.request.AriticleCategoryAndExtensionRequestDto" useGeneratedKeys="true" keyProperty="id"> insert 语句加入useGeneratedKeys="true" keyProperty="id"属性 int result =eipCategoryMap

lslsllsl的博客 768

nRF开发环境搭建全攻略:VS Code + nRF Connect SDK + Zephyr实战

嵌入式开发中,环境配置往往是新手入门的第一道障碍,尤其面对基于Zephyr RTOS的Nordic nRF平台时,工具链的复杂度常让人望而却步。理解构建系统、SDK版本管理和调试工具之间的协作关系,是高效开发的前提。Zephyr作为开源实时操作系统,通过设备树和Kconfig实现硬件描述与功能配置,而nRF Connect SDK(NCS)则是Nordic基于Zephyr的增强发行版,两者结合为物联网开发提供了强大支持。基于VS Code搭建开发环境,配合west工具管理多仓库、CMake/Ninja执行构

weixin_29188997的博客 228

毕设分享|基于16单片机的指纹识别电子密码锁设计

我们今天的工作生活中,很多的场合都需要身份的认证,而传统的基于标志的身份认证技术由于受到证件伪造以及密码破解等手段的威胁,逐渐表现得有些力不从心。怎样保护自己的重要文件资料,如何保证自己的隐私不被泄露?在传统的身份认证中,我们往往使用密码加密法,但是这种方法只是"防君子不防小人"。在高明的黑客眼里,由几个字符组成的密码脆弱得不堪一击。现在,科技的发展让我们有了新的选择——生物识别技术。将生物识别技术应用于笔记本、门锁等方面,可以对文件、财产起保护作用,并且可以进行身份识别。

Sen_091的博客 1021

MySQL--获取最新插入数据的id

第一种方法: select @@identity; @@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。 插入数据之后,不管是再执行什么操作(除了插入数据之后的更新、查询、删除等),只用该方法查询到的id,都是最后插入数据对应的ID。 例如:插入一条ID为10,name为”李四“的数据,之后不管是再执行什么操作(除了插入数据之后的更新、查询、删除等),使用se...

遐想 9988

多节阶梯阻抗变换器工程设计的公式推导

  多节阶梯阻抗变换器工程设计的公式推导,仔细看此文,有点烧脑,所以碎片十分钟,收获一丢丢。   现在就来设计一个超宽带多节阶梯阻抗变换器,要求带内纹波符合切比雪夫分布。   其实,此文已经是省去了大量中间公式推导,只剩下精炼内容了。   阶梯阻抗变换器指标需求   假设现在有一项目需求分析结果是:做一个微带线超宽带阶梯阻抗变换器,指标如下:   从50欧变换到100欧;   回波损耗22dB;   功率容量:2W;   频率范围2~18GHz;   插损能做多少就多少,用30mil板厚.

wusuowei1010的博客 7811

stmt.executeUpdate(sql); 和stmt.executeQuery(sql);有什么区别?

stmt.executeUpdate(sql);用于更新,sql必须是一个更新语句 stmt.executeQuery(sql);用于查询,sql必须是一个查询语句 ResultSet需要关闭,但是如果不关闭也不会给数据带来破坏,知识ResultSet对象会持续保留在内存中,直到虚拟机关闭。 ...

qq_42682533的博客 2995

手把手教你用Docker快速部署ZLMediaKit流媒体服务器(含WebRTC配置)

本文详细介绍了如何使用Docker快速部署ZLMediaKit流媒体服务器,并配置WebRTC功能。通过容器化部署,实现环境一致性、资源隔离和快速扩展,同时提供WebRTC专项配置、多协议推拉流实战测试及生产环境优化建议,帮助开发者高效搭建企业级流媒体平台。

agile9scrum的博客 204

23、关联挖掘到相关性分析及约束关联挖掘详解

本文详细解析了从关联挖掘到相关性分析的发展过程,以及基于约束的关联挖掘方法。文章介绍了传统支持-置信度框架的局限性,并引入Lift、χ2、All Confidence和Cosine等度量来评估规则的相关性。同时探讨了多种规则约束在数据挖掘中的应用机制及其优化效果,旨在提高挖掘效率和规则质量。最后结合实际案例说明如何综合运用相关性度量与规则约束以满足业务需求,并展望了数据挖掘技术的未来发展。

aa123的博客 103

Mysql中获取刚插入的自增长id的三种方法归纳

Mysql中获取刚插入的自增长id的三种方法归纳

hfrujhv的博客 3960

YOLO11多类别数据集的类别平衡方法:讲解类别不平衡问题的识别方法,以及过采样、欠采样、类别权重调整等解决方案(一)

类别不平衡问题是机器学习和计算机视觉领域中一个常见但棘手的挑战。简单来说,当数据集中不同类别的样本数量存在显著差异时,我们就称这个数据集存在类别不平衡问题。在YOLO目标检测任务中,这意味着某些类别的目标对象在训练数据中出现得非常频繁,而其他类别的目标对象则很少出现。 想象一下,你正在训练一个交通监控系统,需要检测不同类型的车辆。在这个场景中,"汽车"这个类别可能有成千上万个实例,而"自行车"或"摩托车"可能只有几百个实例。这种数量上的巨大差异就是典型的类别不平衡问题。 从数学角度来看,假设我们有一个包

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 941

三种获得自动生成主键的方法 getGeneratedKeys,专用SQL和可更新的结果集

三种获得自动生成主键的方法 getGeneratedKeys,专用SQL和可更新的结果集

qq_43685277的博客 1037

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

三种获得自动生成主键的方法

package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * 三种获得自动生成主键的方法。 * * @au...

royzhou1985 535

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JAVA中三种获得自动生成主键的方法

[code="java"] package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * 三种获得自动生成主键的方法。 * */ public class Test...

梦的天空 3342

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

java使用MySQL学习

  1、创建 Statement 对象 建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。 Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示:   String sql = String.format("INSERT INTO %s ( %s ) VALUES ( %s )", table_A

AlextoWarson的专栏 4468

学习java同时能学习mysql吗_java使用MySQL学习

1、创建 Statement 对象建立了到特定数据库的连接之后,就可用该连接发送 SQL 语句。Statement 对象用 Connection 的方法 createStatement 创建,如下列代码段中所示:String sql = String.format("INSERT INTO %s ( %s ) VALUES ( %s )",table_A, AttList.toString(),...

weixin_30949015的博客 307

JDBC 3种获得mysql插入数据的自增字段值的方法

转自: http://hi.baidu.com/softlover/blog/item/ffb012d5557b33c251da4b05.html http://hi.baidu.com/softlover/blog/item/82c9a07713355d1db051b917.html   获得mysql auto increment字段值的3种方法 1。Retrieving AUTO_...

逍遥一狂 160

数据库编程(Java核心技术卷Ⅱ)

数据库编程 1 JDBC的设计 2 结构化查询语言 3 JDBC配置 4 执行SQL语句 5 执行查询操作 6 可滚动和可更新的结果集 7 行集 8 元数据 9 事务 10 Web与企业应用中的连接管理 数据库编程 4.1 JDBC的设计 JDBC遵循了微软公司非常成功的ODBC模式,ODBC为C语言访问数据库提供了一套编程接口。JDBC和ODBC都基于同一个思想:根

rename_to的博客 1076

java api如何生成不重复的数据库_java面试-数据库篇(三)

1 ps.setNull(10, java.sql.Types.INTEGER);.9、Statement中的getGeneratedKeys方法有什么用?有的时候表会生成主键,这时候就可以用Statement的getGeneratedKeys()方法来获取这个自动生成的主键的值了。10、相对于Statement,PreparedStatement的优点是什么?它和Statement相比优点在于:...

weixin_35719518的博客 314

可遇不可求的Question之MYSQL获取自增ID的四种方法篇

1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数 LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。 在多用户交替插入数据的情况下max(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID...

weixin_30409849的博客 949
上一篇: 演示过程可能遇到的问题和应急预案
下一篇: Spring单例模式的一次失败经历和总结
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值