使用Oracle序列将日志id从jdbc插入到2个表中?

2023-12-22

我正在使用 oracle 序列将日志 id 插入到 tableA 中,如下所示,

String SQL_PREP_INSERT = "INSERT INTO tableA (LOG_ID,USER_ID,EXEC_TIME) VALUES"
            + " (logid_seq.nextval, ?, ?)";

然后获取最近插入的值,

String SQL_PREP_SEL = "SELECT max(LOG_ID) FROM tableA ";

stmt = con.prepareStatement(SQL_PREP_SEL);
stmt.execute();
ResultSet rs = stmt.getResultSet();
if (rs.next()) {
logid = rs.getInt(1);
}

并将其插入表中,

String SQL_PREP_INSERT_DETAIL = "INSERT INTO tableB (LOG_ID, RESPONSE_CODE, RESPONSE_MSG) VALUES"
                + " (?, ?)";

        stmt = con.prepareStatement(SQL_PREP_INSERT_DETAIL);
        stmt.setInt(1, logid);
        stmt.setString(2, respCode);
        stmt.setString(3, respMsg);
        stmt.execute();

有没有一种方法可以在Java而不是Oracle中生成序列并同时插入到两个表中,而不是从tableA中选择并插入到tableB中?


一般来说,选择MAX(log_id)不会给你同样的价值logid_seq.nextval假如。假设这是一个多用户系统,其他一些用户可能插入了另一行更大的行log_id值比执行查询之前刚刚插入的行要高。

假设两者INSERT语句在同一个会话中运行,最简单的选择可能是使用logid_seq.currval在第二INSERT陈述。currval将返回返回到当前会话的序列的最后一个值,因此它将始终返回由nextval调用第一个语句。

INSERT INTO tableB (LOG_ID, RESPONSE_CODE, RESPONSE_MSG) 
  VALUES( logid_seq.currval, ?, ? )

或者,您可以使用RETURNING第一个语句中的子句将序列值提取到局部变量中并在第二个语句中使用它INSERT陈述。但这可能比简单地使用currval.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Oracle序列将日志id从jdbc插入到2个表中? 的相关文章

  • 检查发送到网页的请求数

    我正在编写一个 Java 多线程应用程序 它可以访问不同 Web 服务器的数百万个 有时甚至数十亿个 URL 这个想法是检查这些 URL 是否给出有效的 200OK 响应或 404 其他代码 我如何知道我的程序是否不会在他们的服务器上造成高
  • jvm中本机代码如何转换为机器代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过一些文章说 jvm将字节码转换为机器码 jvm将字节码转换为本机代码 jvm 将字节码转换为系统调用 系统调用又由操作系统与硬件
  • H.323,如何制作一个没有媒体的简单环。该脚本遵循 Q.931 设置,但仍然无法正常工作

    谁能帮我解决这个问题吗 当我发送此请求时 我在wireshark中看到数据包将发送到1720 tcp端口中的SJPhone 但 SJPhone 仍然没有响铃 我想让它响起 无论媒体 我非常感谢您的支持 我一定缺少消息协议细节来实现这个 请给
  • Java 流 - 按嵌套列表分组(按第二顺序列出)

    我有以下数据结构 每个学生都有一个州列表 每个州都有一个城市列表 public class Student private int id private String name private List
  • 帮助我避免 JPA、Hibernate 和 MySQL 的连接超时

    我正在使用 JPA Hibernate 作为提供者 Glassfish 和 MySQL 开发中一切都运行良好 但是当我将应用程序部署到测试服务器并让它运行 大部分空闲 过夜时 我通常会在早上遇到这样的情况 2011 03 09T15 06
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • EMF Eclipse:带有自定义字段(属性)的枚举

    好吧 在 Java 中这是可能的 import org eclipse emf common util Enumerator public enum MyEnum implements Enumerator LITERAL1 0 Name
  • net.sf.jasperreports.engine.JRRuntimeException:java.io.IOException:无法读取字体数据

    我正在尝试通过 JasperReport 创建 PDF 报告 但读取字体数据时出现问题 我有 jasperreports extension properties 和 ClassPath 中的相关 TTF 文件 这是错误 java io I
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • 如何使用 Selenium 中的索引切换到窗口

    由于selenium不提供切换到窗口 多个窗口 的方法 但我想使用index html自定义方法来切换到不同的窗口 但下面的代码没有按预期工作 请建议以下方法的最佳实施 public void switchToWindowIndex int
  • 在 Java 中创建带注释的对象时收到通知

    Intent 我有一个自定义 Java 注释 DynamicField public class RESTEndpointInvoker DynamicField key httpTimeout private long httpTimeo
  • 如何通过HBase REST服务获取Phoenix表数据

    我使用 Phoenix JDBC 驱动程序在以下代码片段中创建了一个 HBase 表 Class forName org apache phoenix jdbc PhoenixDriver Connection conn DriverMan
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • JFrame Glasspane 也优于 JDialog,但不应该

    我有一个带有 Glasspane 的 JFrame 未装饰 该框架打开一个 JDialog 也未装饰 也有一个 glassPane 并隐藏自身 setVisible false Glasspanes 通过 setGlassPane 设置 对
  • bufferedinputstream 中标记读取限制有什么用

    我是Java流的新手 我想读取特定的文件内容 然后需要从头开始读取 我创建了一个 BufferedInputStream 但我对 BufferedInputStream mark int markLimit 的文档感到困惑 文档说 publ
  • Java LRU 缓存使用 LinkedList

    堆栈溢出的新手 所以请不要介意我以菜鸟的方式问这个问题 我正在尝试使用链表实现 LRU 缓存 我在这里看到了使用 linkedHashMap 和其他数据结构的其他实现 但对于这种情况 我正在尝试使用链表创建最佳优化版本 正如我在技术期间被问
  • 如何在Java中模拟引用传递?

    我是一个十足的 Java 菜鸟 我知道 Java 将所有参数视为按值传递 并且还有其他几个线程人们对此进行了解释 例如 在 C 中我可以这样做 void makeAThree int n n 3 int main int myInt 4 m
  • 获取Java中ResultSet返回的行数

    我用过一个ResultSet返回一定数量的行 我的代码是这样的 ResultSet res getData if res next System out println No Data Found while res next code t
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • 如何反转 Eloquent Has One 和 Has Many Through (laravel 5.8)?

    I have three relational table attached below https drive google com file d 1q1kdURIwFXxHb2MgdRyBkE1e3DMug7r view usp sha
  • C# 中的日期比较

    我目前正在做一个小项目 但遇到了一个小问题 我希望我的程序调用一个方法CheckDate启动时 这个方法会读入 txt文件以查看上次保存的日期 年 月 日 格式 然后它会将其与今天的日期进行比较 如果不一样 请继续执行一些说明 我已阅读该文
  • cudaMalloc总是给出内存不足

    我面临一个简单的问题 我对 cudaMalloc 的所有调用都失败 给我一个内存不足错误 即使它只是我分配的一个字节 cuda 设备可用 并且还有大量可用内存 机器人通过相应的调用进行检查 知道问题出在哪里吗 请尝试在代码本身的开头调用 c
  • 结构图,其中组的每个成员都连接到 r 中的中心和所有集群中心

    我正在尝试根据数据创建结构图 如下所示 mydf lt data frame group rep 1 5 each 20 z rnorm 20 10 1 x c rnorm 20 2 0 5 rnorm 20 2 0 5 rnorm 20
  • 打印所有层的输出

    给定以下模型 如何打印所有层值 const input tf input shape 5 const denseLayer1 tf layers dense units 10 activation relu const denseLayer
  • 为什么“Foo f(Bar());”可以是采用 Bar 类型并返回 Foo 类型的函数的声明吗? [复制]

    这个问题在这里已经有答案了 我遇到了这个C 问题 问题 以下是定义还是声明 Foo f Bar 答案 它可能是一个采用 Bar 类型并返回 Foo 类型的函数的声明 或者它是一个定义f作为一种类型Foo 它有一个采用 Bar 类型的构造函数
  • 汇编代码生成如何工作?

    我最近一直在研究编译器设计 我已经成功地掌握了解析阶段 但在理解代码生成的工作原理方面遇到了一些困难 根据我的阅读 代码生成阶段似乎有 3 个主要步骤 指令选择 贪婪平铺 指令调度 寄存器分配 现在 指令调度有点超出了我目前正在尝试做的事情
  • Android使用TextWatcher替换单词

    我有一个editText 你在里面写了一些东西 然后当你点击下一步时 你写的文本被写入另一个editText中 它运行完美 但我想用textWatcher来替换一些字母 示例 如何使 S 变为 或 O 为 UPDATE final Edit
  • 会话和子域

    我一直在尝试让我的会话在我的子域上运行 我很确定我在周一可以工作 但在周二添加一些代码后 周三就无法工作了 我已经使用了代码ini set session cookie domain domain where domain example
  • 如何更改comboBox.SelectedIndexChanged 事件中的comboBox.Text?

    代码示例 private void comboBox SelectedIndexChanged object sender EventArgs e if some condition comboBox Text new string 我的问
  • 查询 django 迁移表

    如何从视图中查询 django migrations 表 例如 我已经尝试过 当然不起作用 from django db import migrations latest migration migrations objects all o
  • 禁用单个 .NET Core API 操作的模型验证

    我有一个 API 控制器 用于在我正在开发的应用程序上执行自动保存 它使用与视图相同的视图模型 其中有许多必填字段 如果用户在保存表单时未填写表单 则自动保存控制器可能需要保存不被视为有效的模型 默认情况下 NET Core 控制器声明为
  • 以一定角度在 Canvas 中绘制图像,无需旋转 Canvas

    我正在使用 JavaScript 中的画布在 HTML 5 中绘制图像 我需要以旋转角度绘制它 我知道这可以通过使用画布上下文应用旋转 角度 函数来完成 但我需要这样做不旋转画布本身 如果可能的话 请建议可能的方法 实际上 您可以将想要旋转
  • Android - 围绕中心点旋转图像?

    当用户触摸并拖动位图 不是视图或画布 时 如何围绕其中心点旋转位图 我已经尝试了很多有关堆栈溢出的示例 但似乎都不起作用 到目前为止我有 double r Math atan2 posX dial getWidth 2 dial getHe
  • SQLAlchemy:如何根据其后端有条件地选择列的类型

    我想用HSTORE http docs sqlalchemy org en rel 0 8 dialects postgresql html sqlalchemy dialects postgresql HSTORE如果列使用 Postgr
  • Android 更新 ui 线程元素 - 最佳实践?

    我有一个应用程序可以显示一些测量值 例如温度 速度等 我想或多或少地坚持 MVC 模式 所以我得到了一些东西 可以在值出现时接收它们 从蓝牙组件 并将它们排序到特殊的值处理程序 这些应该计算东西等等 来自地理坐标的速度等等 并将值传递给视图
  • 使用 C# 获取以毫秒为单位的时间

    我正在编写一个程序 需要以毫秒为单位获取时间 我所说的时间 是指一个永远不等于自身的数字 并且总是比前一秒大 1000 个数字 我尝试过转换DateTime Now to a TimeSpan并得到TotalMilliseconds据此 但
  • Chart.js 中多个图表上的工具提示显示错误的值

    我正在使用最新的 Chart bundle js 在同一页面上创建多个堆叠条形图 例如 我有 3 个图表和 2 个数据集 图表是正确的 但每个图表上的工具提示始终相同并且显示错误的值 截图链接 https i stack imgur com
  • PHP 中的提醒系统

    我将在周末用 PHP 创建一个小型提醒系统 计划是 用户注册 用户使用简单的表单创建提醒和待办事项 输入提醒名称 描述和时间等详细信息 该信息存储在 MySQL 数据库中 脚本检查数据库中是否有应发送的提醒 并将它们发送到用户的电子邮件以及
  • 使用Oracle序列将日志id从jdbc插入到2个表中?

    我正在使用 oracle 序列将日志 id 插入到 tableA 中 如下所示 String SQL PREP INSERT INSERT INTO tableA LOG ID USER ID EXEC TIME VALUES logid