Java 连接与数据源

Java 连接与数据源,java,jdbc,Java,Jdbc,我正在阅读Java中的Connections vsDataSources,我有一些问题。数据源真的只是一个管理器和一个连接(或多个连接)的抽象吗 数据源是数据源,连接是驱动程序。连接是连接:)数据源是连接管理器(连接池)。来自: 用于连接到此数据源对象表示的物理数据源的工厂。作为DriverManager功能的替代,数据源对象是获取连接的首选方法 实际上,数据源是连接的提供者,它有各种各样的实现,它们以不同的方式运行。例如: 基本实现——生成标准连接对象 连接池实现——生成将自动参与连接池的连接

我正在阅读Java中的
Connection
s vs
DataSource
s,我有一些问题。
数据源
真的只是一个管理器和一个
连接
(或多个连接)的抽象吗

数据源是数据源,连接是驱动程序。

连接是连接:)
数据源是连接管理器(连接池)。

来自:

用于连接到此数据源对象表示的物理数据源的工厂。作为DriverManager功能的替代,数据源对象是获取连接的首选方法

实际上,
数据源
连接
的提供者,它有各种各样的实现,它们以不同的方式运行。例如:

  • 基本实现——生成标准连接对象

  • 连接池实现——生成将自动参与连接池的连接对象。这 实现与中间层连接池管理器配合使用

  • 分布式事务实现——生成一个可用于分布式事务的连接对象,并且几乎总是这样 参与连接池。此实现与 中间层事务管理器,几乎总是使用连接 池管理器


  • DataSource在其现有形式中是一个糟糕的概念,好像它是用来抽象交互的,它不应该返回一些SQL连接来进行交互。此外,这是一种矫枉过正的想法,XA是一种幻想的概念,有些人因为世界上缺乏可靠的实现而付出了高昂的代价(我的意思是,所有企业商业实现者都会失败并暴露业务……有人因为它在金融领域受到了伤害,但我不会提及名字)。一般来说,不管Sun或Oracle是否推荐它,它都会导致过度工程和代码中的一些技术污点(处理上下文、获取数据的额外步骤、一些外部配置……最终还是特定于供应商的实现)。与企业DBMS供应商提供的数据源实现相比,一些开发的基于普通连接和DriverManager的协同解决方案在处理池、连接恢复等方面做得更好

    为了记录在案,我与他们一起工作,并以在不同地方遇到的事实为基础。如果您对此表示怀疑,请询问为什么在企业中到处都可以看到Hibernate配置中的普通JDBCURL。许多人干脆抛弃了J2EE的重量级思想,转向轻量级。。。还使用基于DriverManager的普通连接


    您想让自己的职业生涯走上正轨,然后继续进行XA数据源和失败事务的恢复,在这些失败事务中,XA的实现非常糟糕。

    我不确定这个答案是否100%准确和正确。