什么是Java中的数据源?有人能用简单的语言解释一下吗?

9

什么是Java中的DataSource?能否用简单的语言解释一下?


2
你有没有真正阅读过 javax.sql.DataSourceAPI 文档?有什么不清楚的地方吗? - Mark Rotteveel
3个回答

4

数据源实现类允许您使用连接池和松耦合的连接性

  1. 大多数情况下,我们都在寻找松耦合的连接性,以便可以轻松切换数据库。

  2. 创建连接可能是一个繁重的过程,让程序的每个部分都创建自己的连接不是一个好主意,这可能导致资源匮乏和性能变慢。因此,我们使用连接池。大多数数据库驱动程序提供了可以用于连接池的数据源实现类。


0

DataSource 是一种抽象,一种表示从某个源获取数据并建立连接的方式。它使您不必担心以下问题:

  1. 需要考虑如何从多个不同的源(例如不同的数据库、云存储资源)建立和维护连接。
  2. 不必担心如果多个客户端从同一源请求数据,这些客户端是否会获得正确的连接对象或 null - 因为连接数、优化和调度本身就是一个挑战。
  3. 同样方便管理连接超时设置。

如果数据库供应商和数据提供者可以实现描述您的服务/服务器如何连接到它们的 DataSource 接口,那么他们就不必担心您学习他们特定的 API,而您也不必担心连接复杂性等问题。

这里是来自官方文档本身关于 Oracle 的好文章。

为了回答您的主要问题,我将总结以下 3 点:

  1. 一个由供应商实现的接口
  2. 用于连接实际数据源的工厂模式
  3. 其主要功能是实现和关注 getConnection()getConnection(String username, String password),两者都返回 Connection 对象 (read)。

-4
根据文档DataSouce接口类似于DriverManager。在大多数应用程序中,它是连接到数据库的接口。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接