1、首先下载JDBC驱动
<!-- 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.
-->
<parameter>
<name> maxActive </name>
<value> 10 </value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name> maxIdle </name>
<value> 3 </value>
</parameter>
<!-- 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.
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.
-->
<parameter>
<name> maxWait </name>
<value> 10000 </value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name> username </name>
<value> root </value>
</parameter>
<parameter>
<name> password </name>
<value> 1234 </value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name> driverClassName </name>
<value> com.mysql.jdbc.Driver </value>
</parameter>
<!-- 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.
-->
<parameter>
<name> url </name>
<value> jdbc:mysql://localhost:3306/forumdb?autoReconnect=true </value>
</parameter>
</ResourceParams>
</Context>
2、在MySQL中创建数据库 存入适当数据做测试用
3、配置server.xml
将MySQL的JDBC驱动mysql-connector-java-bin.jar放到Tomcat\common\lib下面
用文本编辑器打开tomcat5\conf\server.xml,找到 </host> 结束标志,然后在之前加上如下语句:
Context path= "/myapps " docBase= "d:\myweb\myapps " debug= "0 "
reloadable= "true " >
<Resource name= "jdbc/DBConnection "
auth= "Container "
type= "javax.sql.DataSource " />
<ResourceParams name= "jdbc/DBConnection ">
<parameter>
<name> factory </name>
<value> org.apache.commons.dbcp.BasicDataSourceFactory </value>
</parameter>
reloadable= "true " >
<Resource name= "jdbc/DBConnection "
auth= "Container "
type= "javax.sql.DataSource " />
<ResourceParams name= "jdbc/DBConnection ">
<parameter>
<name> factory </name>
<value> org.apache.commons.dbcp.BasicDataSourceFactory </value>
</parameter>
<!-- 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.
-->
<parameter>
<name> maxActive </name>
<value> 10 </value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name> maxIdle </name>
<value> 3 </value>
</parameter>
<!-- 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.
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.
-->
<parameter>
<name> maxWait </name>
<value> 10000 </value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name> username </name>
<value> root </value>
</parameter>
<parameter>
<name> password </name>
<value> 1234 </value>
</parameter>
<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name> driverClassName </name>
<value> com.mysql.jdbc.Driver </value>
</parameter>
<!-- 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.
-->
<parameter>
<name> url </name>
<value> jdbc:mysql://localhost:3306/forumdb?autoReconnect=true </value>
</parameter>
</ResourceParams>
</Context>
也可以是这个模式的:
<Resource
name= "jdbc/****** "
type= "javax.sql.DataSource "
password= "123456 "
driverClassName= "com.microsoft.jdbc.sqlserver.SQLServerDriver "
maxIdle= "2 "
maxWait= "5000 "
username= "sa "
url= "jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart "
maxActive= "4 "/>
再次提醒:一定要放在 </host> 之前!
name= "jdbc/****** "
type= "javax.sql.DataSource "
password= "123456 "
driverClassName= "com.microsoft.jdbc.sqlserver.SQLServerDriver "
maxIdle= "2 "
maxWait= "5000 "
username= "sa "
url= "jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart "
maxActive= "4 "/>
再次提醒:一定要放在 </host> 之前!
4、配置web.xml
web.xml位于myweb\myapps\WEB-INF下,也即是你的WEB里的web.xml。
同样用文本编辑器打开web.xml,然后加入如下语句(在 <web-app> 与 </web-app> 之间)
<resource-ref>
<description> DB Connection </description>
<res-ref-name> jdbc/DBConnection </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
<resource-ref>
<description> DB Connection </description>
<res-ref-name> jdbc/DBConnection </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
5、编写测试jsp page
<%@ page import= "java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.* "%>
<%@ page contentType= "text/html;charset=GB2312 "%>
<html>
<head> <title> DataSourse Connection Test </title> </head>
<body>
<%
try{
java.sql.Connection con;
Statement stmt;
ResultSet rs;
Context ctx = new InitialContext();
DataSource ds=(DataSource)ctx.lookup( "java:comp/env/jdbc/DBConnection ");
con=ds.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery( "select * from member ");
while(rs.next()){
out.print(rs.getInt(1);
out.print(rs.getString(2));
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
out.print(e.getMessage());
}
%>
</body>
</html>
<%@ page contentType= "text/html;charset=GB2312 "%>
<html>
<head> <title> DataSourse Connection Test </title> </head>
<body>
<%
try{
java.sql.Connection con;
Statement stmt;
ResultSet rs;
Context ctx = new InitialContext();
DataSource ds=(DataSource)ctx.lookup( "java:comp/env/jdbc/DBConnection ");
con=ds.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery( "select * from member ");
while(rs.next()){
out.print(rs.getInt(1);
out.print(rs.getString(2));
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
out.print(e.getMessage());
}
%>
</body>
</html>
开始测试 ……