配置Tomcat连接池:
1、配置 conf/server.xml,创建DataSource资源,并且为其指定参数;
2、在web.xml中引用资源;
3、在javabean、servlet中使用资源;
server.xml文件内容
<!--path="/TomcatDbPools" 表示你想用什么样的字符访问站点,即站点的访问方式以/TomcatDbPools结尾
例:http://localhost:8080/ TomcatDbPools
docBase="TomcatDbPools" 你的组件在什么地方放着 没有/则从webapps目录找
debug="0" reloadable="true"是固定的-->
<Context path="/TomcatDbPools" docBase="TomcatDbPools" debug="0" reloadable="true">
<!--name 指定资源池的Resource的JNDI的名字 给连接池起的名字jdbc/TomcatDbPool1
auth:管理权限 指定管理Resource的Manager,可以是Container或Application
type:指出Resource所属的类名,是什么类型的数据源 本例是SQL的-->
<Resource name="jdbc/TomcatDbPool1" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TomcatDbPool1">
指名为哪个连接池配置参数,即为jdbc/TomcatDbPool
<!-- 指定DataResource的factory的名字-->
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- 指定连接池中处于活动连接的最大数量 0表示不受限制 -->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!--指定空闲连接的最大数量 0表示不受限制 -->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- 连接池中处于空闲状态的最大等待的毫秒数,-1表示无限等待 -->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- 连接的用户名和密码 -->
<parameter>
<name>username</name>
<value></value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- 驱动程序 jdbc桥-->
<parameter>
<name>driverClassName</name>
<value>sun.jdbc.odbc.JdbcOdbcDriver</value>
</parameter>
<!-- 数据库的Url -->
<parameter>
<name>url</name>
<value>jdbc:odbc:bookDSN</value>
</parameter>
</ResourceParams>
<!--我们也可以指出多个资源,这样在web.xml中指出引用的是哪个就行了
下面的是使用SqlServer2000的驱动来访问数据库
前提是要将SqlServer的驱动拷贝到tomcat下的 common/lib目录下 -->
<Resource name="jdbc/TomcatDbPool2" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TomcatDbPool2">
<!-- 指定DataResource的factory的名字-->
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- 指定连接池中处于活动连接的最大数量 0表示不受限制 -->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!--指定空闲连接的最大数量 0表示不受限制 -->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- 连接池中处于空闲状态的最大等待的毫秒数,-1表示无限等待 -->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- 连接的用户名和密码 -->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<!-- 驱动程序 本地协议连接-->
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<!-- 数据库的Url -->
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost//b:1433;DatabaseName=book</value>
</parameter>
</ResourceParams>
</Context>
2、在web.xml中引用资源;
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!-- 在此处之处引用的是谁
<resource-ref>
<description>ConnectionPool</description>
<res-ref-name>jdbc/TomcatDbPool1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
-->
<!--我们在server.xml中配置了多个Resource,所以此处要指出来用的是哪个Pool.-->
<resource-ref>--资源引用
<description>ConnectionPool</description>
<res-ref-name>jdbc/TomcatDbPool2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
3、在javabean、servlet中使用资源;
public void openConnection1(){
try
{ /*Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:bookDSN";
conn=DriverManager.getConnection(url,"",""); */
//获取连接的方式变化了(使用连接池)
Context context=new InitialContext();
if(context==null) {
throw new Exception("No such Context");
}
//java:comp/env/是固定写法 jdbc/TomcatDbPool1是serverl.xml中的资源的名字
//用context.lookup方法从jdbc/TomcatDbPool1中得到一个数据源
DataSource ds=(DataSource)context.lookup("java:comp/env/jdbc/TomcatDbPool1");
conn=ds.getConnection();
System.out.println("通过tomcat连接池创建连接成功!");
}catch(Exception e) {
System.out.println(e.getMessage()); }