为了存储、组织和检索数据,大多数应用程序都采用了关系数据库。J2EE 应用程序通过 JDBC API 访问关系数据库。
JDBC 资源(数据源)为应用程序提供了连接数据库的方法。通常,管理员要为部署在域中的应用程序访问的每个数据库创建 JDBC 资源。(但是,可以为一个数据库创建多个 JDBC 资源。)
要创建 JDBC 资源,需要指定标识资源的唯一 JNDI 名称。(请参见“JNDI 名称和资源”部分。)JDBC 资源的 JNDI 名称应在 java:comp/env/jdbc 子上下文中。例如,工资单数据库资源的 JNDI 名称可以为 java:comp/env/jdbc/payrolldb。由于所有资源 JNDI 名称都位于 java:comp/env 子上下文中,因此在管理控制台中指定 JDBC 资源的 JNDI 名称时仅需输入 jdbc/name。例如,对于工资单数据库,可以指定 jdbc/payrolldb。
要创建 资源,请指定与其关联的连接池。多个 JDBC 资源可以指定一个连接池。
连接池是用于特定数据库的一组可重复使用的连接。由于每创建一个新的物理连接都会耗费时间,因此服务器维护了可用连接池以提高性能。应用程序请求连接时可以从池中获取一个连接。应用程序关闭连接时,连接将返回到池中。
连接池的属性可能会随数据库供应商的不同而有所不同。有一些属性是通用的,如数据库名称 (URL)、用户名和密码。
为了存储、组织和检索数据,大多数应用程序都采用了关系数据库。J2EE 应用程序通过 JDBC API 访问关系数据库。应用程序必须获得一个连接之后才可以访问数据库。
以下是运行时应用程序连接到数据库时所发生的情况:
应用程序通过 JNDI API 进行调用获取与数据库关联的 JDBC 资源(数据源)。
给定资源的 JNDI 名称、命名和目录服务定位 JDBC 资源。每个 JDBC 资源指定一个连接池。
通过 JDBC 资源,应用程序获得一个数据库连接。
应用程序服务器秘密地从与该数据库相对应的连接池中检索物理连接。池定义了数据库名称 (URL)、用户名和密码等连接属性。
由于已将应用程序连接到数据库,所以该应用程序可以读取和修改数据库中的数据以及将数据添加到数据库中。
应用程序通过对 JDBC API 进行调用来访问数据库。JDBC 驱动程序将应用程序的 JDBC 调用转换为数据库服务器的协议。
访问数据库完成之后,应用程序将关闭该连接。
应用程序服务器将连接返回连接池。连接返回连接池之后,下一个应用程序就可以使用该连接。