1. 程式人生 > >dataSource資料庫連線池的使用

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 ) ;

}

%>