相同的数据库 - 来自不同客户端的不同输出

Posted

技术标签:

【中文标题】相同的数据库 - 来自不同客户端的不同输出【英文标题】:Same database - different output from different clients 【发布时间】:2020-11-03 23:02:23 【问题描述】:

我有一个带有 Oracle DB 的 docker 容器,我尝试从具有相同凭据的不同客户端访问它,但它的行为很奇怪。

我已在 IDEA 中使用以下 JDBC URL 建立连接:jdbc:oracle:thin:@//localhost:1526/XEPDB1

我也通过 Spring Data 框架在另一个容器中使用它,url 是 jdbc:oracle:thin:@oracle:1521/XEPDB1 (端口被转发到外部世界为 1526,容器名称为 oracle)

最后,我尝试使用 sqlplus 从数据库主机访问数据库:sqlplus LOGIN/PASSWORD@localhost:1521/XEPDB1

所有连接都是成功的,但是对同一个表的简单插入和选择表明每个客户端只能看到它自己的修改。怎么了?如何在客户端之间共享同一张表?

【问题讨论】:

您确定要提交您插入的数据吗? @Mureinik 非常感谢!如果您将此作为答案发布,我会接受 【参考方案1】:

根据连接字符串,所有用户都连接到同一个数据库,所以这不是问题。

问题可能是每个修改数据(例如,插入新行)的用户都没有提交,因此这些数据仅在他们当前的会话中可用。一旦他们提交了数据,所有其他会话也可以使用它。

【讨论】:

以上是关于相同的数据库 - 来自不同客户端的不同输出的主要内容,如果未能解决你的问题,请参考以下文章

在 vue.js 客户端合并来自不同 graphql 解析器的数据以进行简单输出

在 WCF/WIF 中,如何合并来自两个不同客户端的自定义 sts 令牌的声明

为啥来自 Spring 的 BCryptPasswordEncoder 为相同的输入生成不同的输出?

使用 BlobDownload 客户端的不同校验和值

如何比较来自不同数据库的两个表

如何计算不同机器上的统计数据并再次组合它们?