分享
 
 
 

tomcat5/tomcat4中配置数据库(oracle)连接池

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在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这个新东东。现在的目录结构应该为:

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" 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:\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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有