tomcat5/tomcat4中配置數據庫(oracle)連接池
發表于:2007-07-14來源:作者:點擊數:
標簽:
tomcat5/tomcat4中配置 數據庫 ( oracle )連接池 在tomcat 5 OR tomcat4中配置DBCP(Database Connection Pool) 一個小菜鳥(Treey)在JSP學習中的經驗總結 (歡迎轉載) 偶也是JSP的一個初學者,前幾天一直被DBCP在tomact 5中的配置問題搞得頭都大了兩號(注:如
tomcat5/tomcat4中配置
數據庫(
oracle)連接池
在tomcat 5 OR tomcat4中配置DBCP(Database Connection Pool) 一個小菜鳥(Treey)在JSP學習中的經驗總結 (歡迎轉載)
偶也是JSP的一個初學者,前幾天一直被DBCP在tomact 5中的配置問題搞得頭都大了兩號(注:如變身后的“白精精”)。經過看貼子、看文檔,終于基本明白了一些,現將自己的一個例子與眾多像偶一樣的小菜鳥們分享,希望能讓大家少在這配置方面“浪費”太多的時間,也希望我們這些小菜鳥能早是飛上“藍天”。
首先,在Oracle中建立一個名為BOOK的Table,
SQL如下:
create table BOOK(BOOK_CODE CHAR(5) NOT NULL,
COST NUMBER(7,2));
插入幾條記錄:
insert into BOOK VALUES(B0020,13.50);
insert into BOOK VALUES(B0220,12.00);
……
數庫準備完畢!
偶的tomcat安裝路徑為D:\tomcat5,在D:\下的webapps目錄下建立自己的web application目錄。偶建的目錄名為:myapps。然后在自己的目錄中建立WEB-INF目錄,建議從D:\tomcat5\webapps\jsp-examples\下將WEB-INF目錄Copy過來,其中已經配置好了相關設置,特別是加入了jsp2.0這個新東東?,F在的目錄結構應該為:
D:\tomcat5
|------ \webapps
|------- \myapps
|------\WEB-INF
現在開始為DBCP做準備工作。將你想配置的database 的JDBC放到D:\tomcat5\common\lib下,注意一定要放”.jar”的文件,如是“.zip”的文件直接改為.jar即可。本例是用一個Oracle的jdbc,偶將classes111.zip更名為classes111.jar放到這里。
下面開始配置xml文件:
1. 對server.xml的配置:
用(你習慣的)文本編輯器打開D:\tomcat5\conf\server.xml,找到<Context path="" docBase="ROOT" de
bug="0">將它改為以下形式,并加入Oracle的設置信息。
<Context path="/myapps" docBase="myapps" debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>
<!-- Oracle -->
<Resource name="jdbc/myoracle" auth="Container" type="
javax.
sql.DataSource"/>
<ResourceParams name="jdbc/myoracle"><!-- myoracle是自己起的名子,對應到web.xml中也要用這個名子,以及JSP頁面中。 -->
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@127.0.0.1:1521:a
clearcase/" target="_blank" >ccp</value><!-- accp為你的數據庫名稱 -->
</parameter>
<parameter>
<name>username</name>
<value>scott</value>
</parameter>
<parameter>
<name>password</name>
<value>tiger</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams>
<!-- Oracle end -->
</Context>
<!-- my DBCP is end -->
2.然后再打D:\tomcat5\webapps\myapps\WEB-INF\下的web.xml,加入以下東東:
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
( 注意要在</web-app>之前加, 而不是在<web-app之前加,不加也可。當我加到</web-app>前面時,start tomcat出錯,即如下格式時出錯:
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/pdm</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
應將該段代碼加到resource mail/session 下面 即如下格式:
<resource-ref>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!?oracle dbcp-->
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/pdm</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
)
OK!配置工作已經完成了。下面就是寫一個JSP代碼進入
測試了。
在D:\tomcat5\webapps\myapps\下編寫一個test.jsp,內容如下:
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/myoracle");
if(ds!=null){
out.println("Connection is OK!");
Connection cn=ds.getConnection();
if(cn!=null){
out.println("cn is Ok!");
Statement stmt = cn.createStatement();
ResultSet rst = stmt.executeQuery("select * from BOOK");
out.println("<p>rst is Ok!" + rst.next());
while(rst.next()){
out.println("<P>BOOK_CODE:" + rst.getString(1));
}
cn.close();
}else{
out.println("rst Fail!");
}
}
else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);
}
%>
最后,進入測試。運行tomcat.bat,打開IE在地址欄中輸入:http://localhost:8080/myapps/test.jsp
原文轉自:http://www.anti-gravitydesign.com