日期:2014-05-16  浏览次数:20578 次

Tomcat数据源的配置(数据库连接池的配置过程)


如果你使用的是myeclipse的话,很简单,只需要三步
第一:在你安装TomCat的目录下找到context.xml配置文件,我的路径是【D:\Program Files\ApacheSoftware Foundation\Tomcat 6.0\conf\context.xml】
修改文件,添加如下

<Resource
    name="jdbc/mldn"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="30"
    maxWait="10000"
    username="root"
    password="690811"
    driverClassName="org.gjt.mm.mysql.Driver"
    url="jdbc:mysql://localhost:3306/mldn"
/>

属性说明:    
Name,数据源名称,通常取”jdbc/XXX”的格式;     
Type,“javax.sql.DataSource”;    
password,数据库用户密码;   
driveClassName,数据库驱动;(常用都有,MySql的为“com.mysql.jdbc.Driver”;Oracle的为“oracle.jdbc.driver.OracleDriver”;       MS SQL的为“”)    
maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。    
MaxActive,连接池的最大数据库连接数。设为0表示无限制。    
maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制

第二:配置工程下的web.xml文件
    <resource-ref>
        <description>DBConnection</description>
       <res-ref-name>jdbc/mldn</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
    </resource-ref>


第三:把连接数据库的第三方驱动放到【我的路径是D:\ProgramFiles\Apache Software Foundation\Tomcat 6.0\lib】下面就ok了
至此OK。

但是经过我的检测发现,对于第一步,如果不是使用myeclipse的话,自己配置工程路径的话,实际上也可以这样配置
找到server.xml文件,我的路径是【D:\Program Files\Apache SoftwareFoundation\Tomcat 6.0\conf\server.xml

修改文件如下
<Context path="/mars"docBase="E:\Workspace_myeclipse\DemoMLDN"reloadable="true">
    <Resource
        name="jdbc/mldn"
        auth="Container"
        type="javax.sql.DataSource"
        maxActive="100"
        maxIdle="30"
        maxWait="10000"
        username="root"
        password="690811"
       driverClassName="org.gjt.mm.mysql.Driver"
       url="jdbc:mysql://localhost:3306/mldn"
/>
</Context>

在这里修改的意思就是,知识仅仅针对一个web工程配置的连接池。
这种配置方式不仅繁琐而且容易配置错误。建议大家不要使用,知道这种方式即可。

再把测试程序给大家
测试程序如下,一个简单的jsp文件

<%@ page import="java.sql.Connection"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.naming.Context"%>
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head>
<title>练习</title>
</head>
<body>
	<%
		String DSNAME = "java:comp/env/jdbc/mldn";//jdbc/mldn是自己配置的,前面是java中默认的
		Context context = new InitialContext();
		DataSource ds = (DataSource) context.lookup(DSNAME);
		Connection conn = ds.getConnection();
	%>
	<%=conn%>
	<%
		conn.close();
	%>
</body>
</html>

运行结果是:

jdbc:mysql://localhost:3306/mldn, UserName=root@localhost, MySQL-AB JDBC Driver


对于Oracle也可以这么做。网上有很多例子,可以找找看。