前面已经讨论过,使用数据库连接池可以提高数据库的访问性能。Tomcat的数据库连接池是使用Jakarta-Commons项目中Database Connection Pool,包含下列组件:Jakarta-Commons DBCP 、Jakarta-Commons Collections和Jakarta-Commons Pool。这些库文件包必须和JDBC驱动程序一起安装在$CATALINA_HOME/common/lib这个目录下。如果检查发现没有,请到http://jakarta.apache.org/中下载相应的库文件包。
在$CATALINA_HOME/common/lib必须有下列包:
• commons-collections.jar。
• commons-dbcp.jar。
• commons-pool.jar。
• mysql-connector-java-3.0.7-stable-bin.jar //MySQL的驱动程序。
确定这些库文件包确实无误后,进行Tomcat的配置。
上个章节介绍了在Tomcat中部署应用的方法,其中第2种方法是修改server.xml,加入新的Context,只有一行就直接结束了,现在需要在这个Context中再增加内容,如下:
<Context path="/register" docBase="D:/javasource/train/SimpleRegister/defaultroot" debug="1" reloadable="true" crossContext="true" >
<!--注意这里jdbc/userDB是JDNI Name,可以自己取名,这类似一个通用令牌 将在程序系统中也使用到 --> <Resource name="jdbc/userDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/userDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <!--最大连接数目 --> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <!--最大空闲数,即最小连接数目 --> <value>30</value> </parameter> <parameter> <name>maxWait</name> <!--等待连接时间 --> <value>10000</value> </parameter> <parameter> <name>username</name> <value>banq</value> <!--数据库访问用户名 --> </parameter> <parameter> <name>password</name> <value>9999</value> <!--数据库访问用户名 --> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value><!-- 数据库驱动名 --> </parameter> <parameter> <name>url</name> <!-- 数据库URL --> <value>jdbc:mysql://localhost/user?autoReconnect=true</value> </parameter> </ResourceParams> </Context>
|
后面几个参数配置就是JDBC的通用配置了,一旦Tomcat容器配置完成后,就可以在应用系统通过JNDI访问到这个数据库连接池。
本系统更改web.xml如下:
Simple Register
DB Connection
jdbc/userDB
javax.sql.DataSource
Container
这样在Web容器中,通过java:comp/env/jdbc/userDB就可以寻找到jdbc/userDB的连接池。注意,在Java代码中写JNDI Name时,要加上java:comp/env/,这也是通用规定。
将java:comp/env/jdbc/userDB也可配置进入jdonframework.xml中原来JBoss的java:/TestDS就可以使用Tomcat的数据源了。