dataSource数据库连接池的使用

dataSource数据库连接池的使用(know-how)

说明:以下的环境都是在Tomcat4.01中。

      我对JDNI理解不多,这里大多数是一葫芦画瓢得到的。

一、配置server.xml

找到配置发布应用程序的地方:<Context path=”” docBase=”d:/_webs”/>

将这个改为:

<Context path="" docBase="D:/ _web" debug="0">

 

<!—声明一个数据源,程序通过JNDI找到该数据源。

name指出数据源的名称为jdbc/OraDB,

auth表明连接池管理的权限,

type指出该数据源的类型-->

<Resource name="jdbc/OraDB" auth="SERVLET" type="javax.sql.DataSource"/>

 

<!—配置该数据源的属性

name指出数据源的名称

-->

<ResourceParams name="jdbc/OraDB">

 

<!—连接数据库的用户名-->

<parameter>

<name>username</name>

           <value>chenws</value>

</parameter>

    

  <!—连接数据库的密码-->

  <parameter>

           <name>password</name>

        <value>admin</value>

  </parameter>

           

  <!—连接数据库的jdbc驱动程序-->

  <parameter>

           <name>driverClassName</name>

           <value>oracle.jdbc.driver.OracleDriver</value>

  </parameter>

 

  <!—连接数据库的url-->

  <parameter>

           <name>url</name>

           <value>jdbc:oracle:thin:@192.168.39.215:1521:jetchin</value>

  </parameter>

</ResourceParams>

        

</Context>

 

实际上,配置数据源的属性不止以上那些,还有其他的比如连接时间的限制,连接数量的限制等等。这里我们并没有给出,只是使用了tomcat提供的默认属性罢了。

注意:要让该数据源有效,必须将oracleclasses12.zip改名为classes12.jar,然后拷贝到

tomcat安装目录下的/common/lib中。

 

二、配置web.xml

web应用程序目录下的web-inf中,打开web.xml,加入如下的配置:

定义数据源参照:

<resource-ref>

  <!—数据源描述,可有可无-->

  <description>Oracle Datasource example</description>

 

  <!--数据源名称-->

  <res-ref-name>jdbc/OraDB</res-ref-name>

 

  <!—数据源类型-->

<res-type>javax.sql.DataSource</res-type>

 

  <!—连接池管理权限-->

  <res-auth>SERVLET</res-auth>

</resource-ref>

 

三、测试用例

<%@ page contentType="text/html;charset=shift_jis"%>

<%@ page import="java.sql.*"%>

<%@ page import="javax.naming.*"%>

 

<%

   try{

   Context initCtx = new InitialContext();

   Context ctx = (Context) initCtx.lookup("java:comp/env");

   Object obj = (Object) ctx.lookup("jdbc/OraDB");

   javax.sql.DataSource ds = (javax.sql.DataSource)obj;

   Connection conn = ds.getConnection();

   Statement stmt = conn.createStatement();

   String strSql = "select * from offices";

   ResultSet rs = stmt.executeQuery(strSql);

   out.println("city/region<BR>");

   while(rs.next()){

      out.println(rs.getString("city"));               

      out.println("/");

      out.println(rs.getString("region"));

      out.println("<BR>");

     }

   }catch(Exception ex){

             out.println( ex ) ;

   }

%>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值