目前網(wǎng)上關(guān)于Tomcat 5.5的數(shù)據(jù)庫(kù)連接池的配置比較少,僅有的一篇 http://blog.csdn.net/nethermit/archive/2004/11/26/194451.aspx 還被到處拷貝粘貼,而且還不能用。
現(xiàn)在介紹一下真正的配置,以PostgreSQL數(shù)據(jù)庫(kù)為例(MySQL配置是一樣的)。
1、從http://jakarta.apache.org/commons/dbcp/下載commons-dbcp-1.2.1.jar,然后拷貝放到Tomcat 5.5/common/lib下
2、從http://jdbc.postgresql.org/download.html下載PostgreSQL的JDBC驅(qū)動(dòng)程序,MySQL的JDBC驅(qū)動(dòng)從http://dev.mysql.com/downloads/connector/j/3.1.html下載,然后把相應(yīng)的JDBC的驅(qū)動(dòng)程序(jar文件)拷貝到Tomcat5.5/common/lib下
2、編輯Tomcat 5.5/conf/tomcat-users.xml,配置如下
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager,admin"/>
</tomcat-users>
3、編輯Tomcat 5.5/conf/server.xml,在
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">后添加連接描述
<Context path="/mytest" docBase="mytest" debug="5" reloadable="true" crossContext="true">
<Resource name="mytest_ds" auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://127.0.0.1:5432/mytest_db"
username="postgres" password="" maxActive="20" maxIdle="10" maxWait="-1"/>
</Context>說(shuō)明:mytest是你的war包名稱或者是你在webapps/創(chuàng)建的目錄名稱
mytest_ds是連接數(shù)據(jù)源名稱
mytest_db是數(shù)據(jù)庫(kù)名稱
至此Tomcat部分配置完成,下面是JSP部分程序
<%@page contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test of connection pool</title>
</head>
<body>
<%
out.print("Start<br/>");
try{
InitialContext ctx = new InitialContext();
javax.sql.DataSource connectionPool = (javax.sql.DataSource) ctx.lookup("java:comp/env/mytest_ds");
Connection conn = connectionPool.getConnection();
out.print("DB connection pool run OK!");
conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。