1.配置說明
Tomcat5.0
Eclipse3.3+MyEclipse6.0
Mysql5
mysql-connector-java-3.1.12
2.新建web工程
[1]New Project-Web Project-取名為ConnectorPool
[2]將mysql-connector-java-3.1.12加到%TOMCAT_HOME%/common/lib下。
[3]部署測試該工程。
在地址欄輸入http://127.0.0.1:8080/ConnectorPool/,將得到默認的 index.jsp。說明部署成功。
3.配置Tomcat Admin
啟動Tomcat,訪問http://127.0.0.1:8080/admin/,輸入用戶名和密碼,即可 進入管理界面。用戶名和密碼可在%Tomcat _HOME%/conf/ tomcat-users.xml中 找到。
左邊的菜單欄時有Tomcat Server,Resources,User Definition。注意,不要 在Resource中配置數據源,這是配置全局的數據源。
進入Tomcat Server->Service(Catalina)->Host(loalhost),就能找 到剛才部署的工程->Context(/ConnecterPool)。
再打開該子樹,打開Resources->Data Sources,這裡就是針對某個具體 Context的DataSource了。
Create New Data Source
①JNDI Name:jdbc/testpool //設置連接池的JNDI名;
②Data Source URL:jdbc:mysql://localhost:3306/conpool //數據庫連接 字串,forpool為數據庫名;
③JDBC Driver Class: com.mysql.jdbc.Driver //數據庫連接類 ;
④User Name:root //數據庫連接時的用戶名;
⑤Password:**** //數據庫連接時的密碼;
⑥以下默認配置。
點擊Save,配置完成(一般不需要重啟tomcat)。
4.配置項目中/WEB-INF/web.xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/testpool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
5.配置完成,在java文件中使用數據庫連接池
import javax.naming.InitialContext;
import javax.sql.DataSource;
InitialContext ctx=new InitialContext();
DataSource dataSource=(DataSource)ctx.lookup ("java:comp/env/jdbc/testpool");
Connection con=dataSource.getConnection();
通過這段代碼。即可完成數據庫連接。下面給出一個具體的測試例。
6.測試
6.1 測試用的數據庫
[1]數據庫名conpool(對Data Source URL:jdbc:mysql://localhost:3306/conpool )
[2]表名test
[3]字段名 id [varchar(12) ,notnull]
[4]表中數據
id
001
002
003
6.2測試用的代碼test.jsp
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>test for DB connection</title>
<%
out.print("beginning testing...");
out.print("<br>");
DataSource ds = null;
try {
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup ("java:comp/env/jdbc/testpool");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
// test是數據庫已有的表,
//這裡的數據庫是前文提及的Data Source URL配置裡包含的 數據庫。
String strSql = " select * from test";
ResultSet rs = stmt.executeQuery(strSql);
while (rs.next()) {
out.print(rs.getString(1));
}
out.print("<br>");
out.print("end testing.");
} catch (Exception ex) {
out.print("error:" + ex.getMessage());
ex.printStackTrace();
}
%>
</head>
<body>
</body>
</html>
6.3測試結果
7.查詢配置文件
編譯後,%TOMCAT_HOME%/conf/Catalina/localhost/目錄下有個 ConnectorPool.xml,其內容為:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="ConnectorPool" path="/ConnectorPool"
workDir="work\Catalina\localhost\ConnectorPool">
<Resource auth="Container" description="DB Connection" name="jdbc/testpool" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/testpool">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value>root</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/conpool</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
</ResourceParams>
</Context>
參數說明:
driveClassName:JDBC驅動類的完整的名稱;
maxActive:同時能夠從連接池中被分配的可用實例的最大數;
maxIdle:可以同時閒置在連接池中的連接的最大數;
maxWait:最大超時時間,以毫秒計;
password:用戶密碼;
url:到JDBC的URL連接;
user:用戶名稱;
validationQuery:用來查詢池中空閒的連接。
本文出自 “子 孑” 博客,請務必保留此出處 http://zhangjunhd.blog.51cto.com/113473/51938