在JDBC操作中,打开和关闭数据库连接,是最耗费数据库资源的,我们可以在服务器(通常指某个类中使用Map来维护已经存在的数据库连接)上存放一定量的数据库连接,每当程序要连接数据库时,就将这些链接给它们,而一旦程序退出数据库操作时,要将这些链接返回给服务器,而不是直接进行关闭/释放。
下图是数据源的基本概念:
1:通过Connection Pool 管理数据库连接。如:C3P0、DPCP等
2:通过DataSource 去管理Connection Pool。如:C3P0、DPCP等
3:DataSource被JNDI Tree绑定。
全局可用
全局可用的范围意味着tomcat服务器下面的所有应用都可以使用这个context元素定义的资源。全局可用范围的context元素在文件 ${CATALINA_HOME}/conf/context.xml 文件中描述。这个文件在tomcat刚刚被安装的时候,是没有定义任何资源的。我们可以看到,这个文件的内容:
WEB-INF/web.xml
其中的 WEB-INF/web.xml表示服务器会监视应用的WEB-INF/web.xml 文件来知道那个应用会引用在此处定义的资源。
下面的例子都是使用MySQL数据库:
一、配置Tomcat5数据源
1、配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:
name="jdbc/testTomcat5" type="javax.sql.DataSource"/>
maxWait
5000
maxActive
4
password
root
url
jdbc:mysql://localhost:3306/conpool
driverClassName
com.mysql.jdbc.Driver
maxIdle
2
username
root
参数说明:
driveClassName:JDBC驱动类的完整的名称;
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计;
password:用户密码;
url:到JDBC的URL连接;
user:用户名称;
validationQuery:用来查询池中空闲的连接。
2、配置项目中/WEB-INF/web.xml
DB Connection
jdbc/testpool
javax.sql.DataSource
Container
Shareable
二、配置Tomcat6数据源
1、配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:testTomcat6"
username="root"
password="aaaaaa"
maxActive="100"
maxIdle="30"
maxWait="10000" />
说明:
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源类型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址
2、配置你的应用下的web.xml中的之间加入:
DB Connection
jdbc/testTomcat6
javax.sql.DataSource
Container
在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。
三:配置Tomcat7数据源
1、将下面代码添加到Tomcat的%TOMCAT_HOME%\conf\context.xml中的标签中
name="jdbc/testTomcat7"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="aaaaaa"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testTomcat7"
/>
上下文context.xml中的参数的解析如下:
name 属性是数据源名称,通常采取jdbc/**。
driverClassName 属性是驱动程序名称。
username,password,数据库名称和密码。
url 访问的数据库路径。其中url的内容组成解析上篇博客中已经分析。
maxActive 属性是并发连接的最大数。设置为0则无限制。
maxWait 属性是等待连接的最大连接的时间。
maxIdle 属性是连接池中空闲的连接的个数。
2、修改web.xml
打开%TOMCAT_HOME%\conf\web.xml,在的前面添加以下内容:MySQL Test App
DB Connection
jdbc/testTomcat7
javax.sql.DataSource
Container
注意:上面的修改是针对该Tomcat下面的所有WEB项目,如果只针对某一个WEB项目,则修改该WEB项目WEB-INF\web.xml文件。