获取与数据库的 DataSource 连接
通过使用 DataSource 接口,可以使用 Java 命名和目录接口 (JNDI) DataSource 名称查找来获取与数据库的连接。 JDBC DataSource 的实现由 cicsts:jdbc-1.0 功能或 Liberty jdbc-4.1、 jdbc-4.2 或 jdbc-4.3 功能之一提供。
关于此任务
术语 "数据源" 可以在两种不同的上下文中使用,需要仔细注意,因为它们以大写形式区分:
- 数据源是数据库之类的数据源。
- DataSource 是用于封装一组属性的 Java EE 方法,这些属性用于标识和描述它所表示的真实世界数据源。 可以将 DataSource 对象视为与它所表示的特定数据源的连接的工厂。
- 如果向 JNDI 命名服务注册了 DataSource 对象,那么应用程序可以使用 JNDI API 来访问该 DataSource 对象,然后可以使用该对象来连接到它所表示的数据源。
- DataSource 对象可以选择实现连接池 (一组物理连接的临时逻辑表示)。 当应用程序关闭此类连接时,不会关闭临时连接 (也称为 JDBC 连接) ,而是返回到池以供复用。
如果您正在使用 JDBC 类型 4 连接,并且想要将数据库更新与 CICS® 工作单元中进行的更新协调,请使用 CICS JTA 集成支持并在 UserTransaction的作用域内执行更新。 请参阅 Java 事务 API (JTA) 以获取更多信息。 此外,应确保 DataSource 是 XADataSource (通过添加元素 type="javax.sql.XADataSource 来指定)。 )。 如果使用 Liberty 缺省值 DataSource <dataSource id="DefaultDataSource"> ,那么缺省情况下它是 XADataSource 。
配置 DataSource 后,应用程序可以在 Liberty 服务器配置中使用分别在
cicsts_dataSource 元素或 dataSource 元素中指定的 jndiName 值,以从 JNDI 命名服务获取该 DataSource 类的实例。 然后,可以在该 DataSource 对象上调用 getConnection() 方法以获取连接。 例如:Context context = new InitialContext();
DataSource dataSource = (DataSource)
context.lookup("jdbc/defaultCICSDataSource");
Connection connection = dataSource.getConnection();