在tomcat 5 OR tomcat4中配置DBCP(Database Connection Pool)
偶也是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: omcat5,在D:下的webapps目录下建立自己的web application目录。偶建的目录名为:myapps。然后在自己的目录中建立WEB-INF目录,建议从D: omcat5webappsjsp-examples下将WEB-INF目录Copy过来,其中已经配置好了相关设置,特别是加入了jsp2.0这个新东东。现在的目录结构应该为: D: omcat5 |------ webapps |------- myapps |------WEB-INF 现在开始为DBCP做准备工作。将你想配置的database 的JDBC放到D: omcat5commonlib下,注意一定要放”.jar”的文件,如是“.zip”的文件直接改为.jar即可。本例是用一个Oracle的jdbc,偶将classes111.zip更名为classes111.jar放到这里。 下面开始配置xml文件: 1. 对server.xml的配置: 用(你习惯的)文本编辑器打开D: omcat5confserver.xml,找到<Context path="" docBase="ROOT" debug="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:accp</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: omcat5webappsmyappsWEB-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: omcat5webappsmyapps下编写一个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 |
tomcat5/tomcat4中配置数据库(oracle)连接池
最新推荐文章于 2024-10-20 16:58:49 发布