tomcat連接池樣例

[size=medium]tomcat6.0連接mysql數據庫連接池[原創]

1 下載Tomcat最新版本
下載地址:http://tomcat.apache.org/
2 下載mysql最新版本以及最近版本的驅動程序
下載地址:http://dev.mysql.com/downloads
http://dev.mysql.com/downloads/connector
並將下載的mysql-connector-java-5.1.0-bin.jar a連接文件放到$CATALINA_HOME/lib/下。
3 安裝mysql數據庫
4 創建一個tomcat應用程序,工程的名字爲DBTest
5 修改$CATALINA_HOME/conf/ context.xml爲以下內容
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<!-- maxActive: Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<!-- maxIdle: Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->
<!-- maxWait: Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<!-- username and password: MySQL dB username and password for dB connections -->
<!-- driverClassName: Class name for the old mm.mysql JDBC driver is
org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
-->
<!-- url: The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
[color=red] <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/ jtest?autoReconnect=true"/>[/color]</Context>
此時要注意修改自己的數據庫的用戶名和密碼
我建立的
數據庫:jtest
用戶名:javauser
密碼:javadude
6 修改工程目錄下的web.xml文件添加如下
[color=darkred]<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>[/color]7 創建一個java類
package com.test;

/*
* DBTest.java
*
* Created on 2007/06/07, 10:33:02
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

/**
*
* @author wangzicai
*/
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class DBTest {
String foo = "Not Connected";
int bar = -1;
public void init() {
[color=darkblue]try{
Context ctx = new InitialContext();
if(ctx == null )
throw new Exception("Boom - No Context");
DataSource ds =
(DataSource)ctx.lookup(
"java:comp/env/jdbc/TestDB");
if (ds != null) {
Connection conn = ds.getConnection();
if(conn != null) {
foo = "Got Connection "+conn.toString();
Statement stmt = conn.createStatement();
ResultSet rst =
stmt.executeQuery(
" select * from test ");
if(rst.next()) {
foo=rst.getString(1);
bar=208;
}
conn.close();
}
}[/color] }catch(Exception e) {
e.printStackTrace();
}
}
public String getFoo() { return foo; }
public int getBar() { return bar;}
}


8 編輯index.jsp


<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import ="com.test.*" %>
<html>
<head>
<title>DB Test</title>
</head>
<body>
<%
DBTest tst = new DBTest();
tst.init();
%>
<h2>Results</h2>
Foo <%= tst.getFoo() %><br>
Bar <%= tst.getBar() %>
</body>[/size]
發佈了26 篇原創文章 · 獲贊 0 · 訪問量 648
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章