创建Oracle 数据库的连接池
 
创建连接用户及表格
先连接到数据库
[oracle@lii ~]$ sqlplus / as sysdba
 
(1)创建用户test,密码为123456,语句如下:
CREATE USER "TEST" PROFILE "DEFAULT" IDENTIFIED BY "123456" DEFAULT TABLESPACE "USERS" QUOTA UNLIMITED ON "USERS" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "TEST";
(2)创建员工信息表格employees:
CREATE TABLE "TEST"."EMPLOYEES" ("EMPNO" NUMBER(5) NOT NULL, "ENAME" VARCHAR2(15) NOT NULL, "EPHONE" VARCHAR2(20) NOT NULL, CONSTRAINT "PK" PRIMARY KEY("EMPNO" )) TABLESPACE "USERS";
(3)插入两条员工数据:
INSERT INTO TEST.EMPLOYEES VALUES(1,'john','123456789');
INSERT INTO TEST.EMPLOYEES VALUES(2,'jim','987654321');
(4)用test 用户连接到Oracle 数据库,并且查询employees 表格内的数据,
如果能够征程访问,说明数据库已经准备好。
conn TEST/123456@test
SQL> conn TEST/123456@test
Connected.
SQL> select * from employees;
     EMPNO ENAME
---------- ------------------------------
EPHONE
----------------------------------------
         1 john
123456789
         2 jim
987654321
创建 JDBC 数据源
开始前,确保已在所有服务器上安装了要用于创建数据库连接的 JDBC 驱动程序。某些 JDBC 驱动程序是随 WebLogic Server 安装的,包括 BEA WebLogic Type4 JDBC drivers for DB2、Informix、MS SQL Server、Oracle 和 Sybase。有关使用JDBC 驱动程序的详细信息,请参阅bea 的官方文档。在 WebLogic Server 中,通过将 JDBC 数据源添加到您的 WebLogic 域中来配置数据库连接性。数据源是配置与数据库的连接性的 J2EE 标准方法。每个WebLogic 数据源都含有一组数据库连接。应用程序在 JNDI 树上或本地应用程序上下文中查找数据源,然后使用 getConnection 方法保留数据库连接。数据源及其连接缓冲池可以提供有助于保持系统运行和性能的连接管理进程。
要创建 JDBC 数据源,请执行下列操作:
 
1)在浏览器中输入 [url]http://localhost:7001/console/[/url]来登录weblogic的管理页面,
2)如果尚未执行此操作,请在管理控制台的更改中心中单击“锁定并编辑”。
如下图:
wps_clip_p_w_picpath1
3)在“域结构”树中,展开“服务”>“JDBC”,然后选择“数据源”。如下图 所示:
wps_clip_p_w_picpath2
4)在“数据源概要”页上,单击“新建”。如下图所示:
wps_clip_p_w_picpath3
5)在“JDBC 数据源属性”页上,输入或选择下列信息:
名称 - 输入此 JDBC 数据源的名称。此名称在配置文件 (config.xml) 和管理控制台中用于指代此数据源。JNDI 名称 - 输入要将此 JDBC 数据源绑定到的 JNDI 路径。保留连接时,
应用程序按此名称在 JNDI 树中查找数据源。
数据库类型 - 选择要连接到的数据库的 DBMS。如果没有列出您的 DBMS,
请选择“其他”。
数据库驱动程序 - 选择要用于连接到数据库的 JDBC 驱动程序。列表中包括
选定 DBMS 的常用 JDBC 驱动程序。
注意: 使用 JDBC 驱动程序创建数据库连接之前,必须先安装 JDBC 驱动程序。一些 JDBC 驱动程序随 WebLogic Server 一起安装,但是许多 JDBC 驱动程序没有随之安装。
如下图 所示,输入相关的内容,然后单击“下一步”继续。
wps_clip_p_w_picpath4
6)记录上一个资源 - 选择此选项启用非 XA JDBC 连接,可以通过使用“记录上
一个资源 (LLR)”事务优化来参与全局事务。
此选项仅在选择非 XA JDBC 驱动程序进行数据库连接时可用。
仿真两阶段提交 - 启用非 XA JDBC 连接可以通过使用 JTA 来仿真分布式
事务中的参与。只有在应用程序可允许出现试探性情况时才能选择此选项。
此选项仅在选择非 XA JDBC 驱动程序进行数据库连接时可用。
一阶段提交 - 选择此选项启用非 XA 连接,从而作为唯一的事务参与者可以
参与全局事务。
此选项仅在选择非 XA JDBC 驱动程序进行数据库连接时可用。
有关事务选项的详细信息,请参阅事务选项(英文)。
点击“下一步”继续
wps_clip_p_w_picpath5
7)在“连接属性”页上,输入下列属性的值:
数据库名称 - 输入要连接到的数据库的名称。确切的数据库名称要求因 JDBC驱动程序和 DBMS 的不同而异。
主机名 - 输入承载数据库的服务器的 DNS 名称或 IP 地址。
端口 - 输入数据库服务器监听连接请求时使用的端口。
数据库用户名 - 输入对于此数据源中的每一连接要使用的数据库用户帐户名。
密码/确认密码 - 输入数据库用户帐户的密码。
如下图 所示,输入相应的内容,然后单击“下一步”继续。
wps_clip_p_w_picpath6
8)在“测试数据库连接”页上,检查连接参数并单击“测试配置”。
WebLogic 尝试创建从管理服务器到数据库的连接。连接测试的结果显示在页
面的顶部,如下图 所示。如果测试成功,则您应该更正任何配置错误并重试测试。
如果管理服务器上未安装您所选的 JDBC 驱动程序,则您应单击“下一步”跳
过此步骤。
wps_clip_p_w_picpath7
wps_clip_p_w_picpath8
9)在“选择目标”页上,选择要部署此数据源的服务器或群集。这里选择“AdminServer”如下图 所示:
wps_clip_p_w_picpath9
10)单击“完成”保存 JDBC 数据源配置并将数据源部署到您所选的目标中。
11)要激活这些更改,请在管理控制台的更改中心中单击“激活更改”。
如下图所示:
wps_clip_p_w_picpath10
激活后就不用重起就生效,并非所有更改都立即生效。某些更改必须重新启动后才能生效。
测试DataSource
 
1)可以在前面部署的myweb 应用程序中,即myweb 目录下添加一个应用测试页
面index.jsp,测试页面的内容如下:
[root@lii ~]# vi /opt/bea/user_projects/domains/test/autodeploy/myweb/index.jsp
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>
<%@page session="false"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<title>JNDI Test</title>
</head>
<body>
<%
  Context ctx = null;
  Hashtable ht = new Hashtable();
  ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
  ht.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");  注意这个ip地址要和上面所填主机名的ip地址一样,否则很难出现结果。
  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
  try {
    ctx = new InitialContext(ht);
    javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/oracleDS");
    conn = ds.getConnection();
  // You can now use the conn object to create
  //  Statements and retrieve result sets:
    stmt = conn.createStatement();
    stmt.execute("select * from employees");
    rs = stmt.getResultSet();
  //Close JDBC objects as soon as possible
%>
<TABLE BORDER=1 ;75%">
  <TR>
    <TH>ename</TH>
    <TH>ephone</TH>
  </TR>
<%while (rs.next()) {%>
  <TR>
    <TD><%= rs.getString("ename") %>    </TD>
    <TD><%= rs.getString("ephone") %>    </TD>
  </TR>
<%
  }
  stmt.close();
  stmt = null;
  conn.close();
  conn = null;
%>
</Table>
<%
  } catch (Exception e) {
    // a failure occurred
    out.print("Error! Messages: "+e.getMessage());
    e.printStackTrace();
  }
  finally {
    try {
      ctx.close();
    }
    catch (Exception e) {
    }
    try {
      if (rs != null) rs.close();
    }
    catch (Exception e) {
    }
    try {
      if (stmt != null) stmt.close();
    }
    catch (Exception e) {
    }
    try {
      if (conn != null) conn.close();
     }
    catch (Exception e) {
      }
  }
%>
</body>
</html>
2)编写好测试的页面内容后,重新启动服务器,然后再到浏览器中输入:
出现下面的内容(即在koorka.employees 表格中输入的内容),说明数据源配置成功。
wps_clip_p_w_picpath11
出现下面的内容(即在koorka.employees 表格中输入的内容),说明数据源配置成功。