把mysql驱动包分别放到%TOMCAT_HOME%/lib 和你的应用的WEB-INF/lib文件夹下面
1、修改%TOMCAT_HOME%/conf/server.xml,添加如下内容(部分参数请本地化):
<Context path="/web" docBase="web" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/query" auth="Container" type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver" maxIdle="20" maxWait="5000" username="username" password="password" url="jdbc:mysql://localhost:3306/DataBaseName" maxActive="100" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
2、修改对应应用的web.xml,在</web-app>前添加如下内容:
<ResourceLink name="jdbc/query" global="jdbc/query" type="javax.sql.DataSourcer"/>
重启tomcat,大功搞成!
应用实例如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<html>
<body>
123
<%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
//从Context中lookup数据源。
ds = (DataSource)envCtx.lookup("jdbc/query");
if(ds!=null)
{
out.println("已经获得DataSource!");
out.println("<br>");
Connection conn = ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from cs_order");//从一个已存在的表中读取数据
out.println("以下是从数据库中读取出来的数据:<br>");
while(rst.next()){
out.println("<br>");
out.println(rst.getString(8));}
}
}
catch(Exception ne)
{
out.println("出现如下错误:<br>");
out.println(ne);
}
%>
</body>
</html>
参考:http://forum.java.sun.com/thread.jspa?threadID=607990&messageID=3319592
======================================================================
续篇:配置好连接池后,把getConn()操作放到一个类中,代码如下:
package ztcs.db;
import java.sql.*;
import javax.naming.*;
import javax.sql.*;
public class Conn {
public static synchronized Connection get() throws Exception {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
//从Context中lookup数据源。
DataSource ds = (DataSource) envCtx.lookup("jdbc/query");
return ds.getConnection();
}
}
在需要获得连接的地方 只需Connection conn = Conn.get();就从池中取得一个连接~