关于Tomcat6.0与数据库连接池配置的相关有关问题

关于Tomcat6.0与数据库连接池配置的相关问题

方法一: 在server.xml中添加配置信息,即在”<GlobalNamingResources>“标记中,声明连接池的具体信息,添加内容如下:

 

<Resource name="jdbc/lian"    <!--资源名称-->
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100" maxIdle="30" maxWait="10000" <!--活动连接数-->
    username="root"  password="root"
    driverClassName="com.mysql.jdbc.Driver"      <!--驱动类-->
    url="jdbc:mysql://localhost:3306/test"/>     <!--数据库连接URL-->

 

<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/>
    <Resource name="jdbc/lian"
		auth="Container" 
		type="javax.sql.DataSource"
		maxActive="100" maxIdle="30" maxWait="10000"
		username="root"  password="root"
		driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/test"/>
  </GlobalNamingResources>
 

注意: 在配置server.xml或context.xml时,由于我用的是JavaEE版本的IDE,所以我直接在IDE下的Server工程中的Tomcat v6.0 Server at localhost-config下配置server.xml或context.xml。不懂是为什么,直接在 $CATALINA_HOME/conf/server.xml或 context.xml 中配置会出现被重置到原初始状态,即每次重启tomcat, server.xml或 context.xml就会被还原到默认状态。这个我百思不得其解,望高人指教。


方法二: context .xml中添加配置信息

 

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    
    <Resource name="jdbc/lian"
		auth="Container" 
		type="javax.sql.DataSource"
		maxActive="100" maxIdle="30" maxWait="10000"
		username="root"  password="root"
		driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/test"/>

</Context>

 

方法三: 在server.xml中添加配置信息,即在最后的”</Host>“标记之前:

 

 

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">   
         <Context>
		    <Resource name="jdbc/lian"
				auth="Container" 
				type="javax.sql.DataSource"
				maxActive="100" maxIdle="30" maxWait="10000"
				username="root"  password="root"
				driverClassName="com.mysql.jdbc.Driver"
		        url="jdbc:mysql://localhost:3306/test"/>	
	    </Context>

           <Context docBase="TestDataSourse" path="/TestDataSourse" 
                      reloadable="true" source="org.eclipse.jst.jee.server:TestDataSourse"/>
</Host>

 

 

 

 

没有加这段代码,测试也行。

 

<resource-ref>
    <description>DB Connection</description>  <!--资源描述名称-->
    <res-ref-name>jdbc/lian</res-ref-name>    <!--资源JNDI名称-->
    <res-type>javax.sql.DataSource</res-type> <!--资源类型-->
    <res-auth>Container</res-auth>
</resource-ref>

 

测试时:

 

在JSP、Servlet或JavaBean中用如下Java代码获取数据库连接:

Context context = new InitialContext();  // 创建初始上下文
DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/lian"); // 通过JNDI获取数据源
Connection conn = ds.getConnection();    // 从连接池中借一个连接