搜索

第 6 章 使用 JDBC 数据源

download PDF

以下主题讨论 Fuse OSGi 运行时中使用的 JDBC 数据源:

6.1. 关于连接接口

用于执行数据操作的最重要 对象是 java.sql.Connection 接口的实现。从 Fuse 配置的角度来看,了解如何 获取 连接 对象非常重要。

包含相关对象的库有:

  • PostgreSQL: mvn:org.postgresql/postgresql/42.2.5
  • MySQL: mvn:mysql/mysql-connector-java/5.1.34

现有实现(包含在 驱动程序 JAR中)提供:

  • PostgreSQL: org.postgresql.jdbc.PgConnection
  • mysql: com.mysql.jdbc. JDBC4Connection (请参阅 com.mysql.jdbc.Driver)的各种 connect*() 方法。

这些实现包含特定于数据库的逻辑,用于执行 DML、DDL 和简单的事务管理。

在理论上,可以手动创建这些连接对象,但有两个 JDBC 方法用于隐藏详情以提供干净的 API:

  • java.sql.Driver.connect () - 这个方法在独立应用程序中被长时间使用。
  • javax.sql.DataSource.getConnection () - 这是使用 工厂 模式的首选方法。类似的方法用于从 JMS 连接工厂获取 JMS 连接。

此处不讨论 驱动程序管理器 方法。它足以说明此方法只是给定连接对象的普通构造器之上的小

除了有效实现特定于数据库的通信协议的 java.sql.Connection 外,还有另外两个专用的 连接 接口:

  • javax.sql.PooledConnection 代表物理连接。您的代码不会与这个池的连接直接交互。反之,使用 getConnection () 方法获取的连接。这种间接允许管理应用服务器级别的连接池。使用 getConnection () 获取的连接通常是代理。当此类代理连接关闭时,物理连接不会关闭,而是在受管连接池中再次可用。
  • javax.sql.XAConnection 允许获取与 javax.transaction.TransactionManager 一起使用的 XA 感知连接的 javax.transaction.xa.XAResource 对象。由于 javax.sql.XAConnection 扩展 javax.sql.PooledConnection,它还提供 'getConnection () 方法,它提供对具有典型 DML/DQL 方法的 JDBC 连接对象的访问。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.