java - 当 Java 向 Oracle 发送消息时

标签 java oracle jdbc ojdbc

当对 Oracle 或类似的 RDBMS 进行 Java 调用时,Java 如何知道 Oracle 操作已完成?

例如,“create table as (select * from table1)”。

如果我们通过 Java 在 Oracle 中执行单行 SQL 语句,Java 如何知道代码行已经完成,并继续执行下一条 Java 指令?我的猜测是有一些 secret 的 JDBC 正在进行但不确定它是什么。

谁能解释一下?

我希望在Java中执行该行代码所需的时间可以调整。如果您不想返回 ResultSet 对象,而只想进行某种确认,那么您可以微调一些东西。

最佳答案

与任何其他网络请求获得响应的方式相同。

当您向数据库发送查询时,JDBC 驱动程序会通过网络发送一堆数据包并等待响应。当数据库有响应时(在 Oracle 的情况下,当前 N 行可用时),驱动程序从数据库接收到一堆构成响应的数据包。 JDBC 驱动程序解析这些数据包中的信息,并根据 JDBC API 通知您的应用程序。

这与任何类型的客户端/服务器网络请求时发生的过程完全相同。您的 Web 浏览器如何知道它发送到 HTTP 服务器的 HTTP 请求何时已被处理?它知道 HTTP 服务器的响应何时开始到达。然后 HTTP 服务器解析该响应,然后根据 HTML 标准等内容将信息呈现给您。

关于java - 当 Java 向 Oracle 发送消息时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18199810/

相关文章:

java - 高效的数据结构与算法——自然序列

Sql 查询将特定键的多个记录合并为单个记录

database - Oracle:如何根据大量ID过滤结果[20K]

java - 如何为 List 创建一个 ConstraintValidator

Java 数组和继承

oracle - 分开存储元数据和原始数据

java - JSP 的 <% %> 与 <? ?> 对于 PHP?

java - 是否可以有一个 JDBC 池将只读查询路由到从属 sql 服务器?

java - 如何从结果集中检索 SQL COUNT 函数的结果?

Java - 锁定 JFrame 的纵横比