zoukankan      html  css  js  c++  java
  • TOMCAT数据库连接池的配置方法总结(待续)

    这几天在弄个小东西,要用到数据库,以前就听说过数据库连接池这个概念,所以就打算在这个小东西中加入数据库连接池。呵呵。从网上搜了一些资料。今天就整理一下。我搜到的设置基本上主要有两种方法我们以MySQL+TOMCAT为例
    1.把DataSource设置到我们的WEB项目中,下面详细的介绍下:
    第一步:在我们的WEB项目中的META-INF文件夹下建立一个context.xml

    Xml代码 复制代码 收藏代码
    1. <?xml version='1.0' encoding='utf-8'?>  
    2.   
    3. <Context>  
    4.   
    5.     <Resource name="jdbc/mysql"      
    6.        auth="Container"      
    7.        type="javax.sql.DataSource"      
    8.        driverClassName="com.mysql.jdbc.Driver"      
    9.        url="jdbc:mysql://localhost/bbs"      
    10.        username="root"      
    11.        password="root"      
    12.        maxActive="50"      
    13.        maxIdle="20"      
    14.        maxWait="10000" />      
    15.   
    16. </Context>  
    <?xml version='1.0' encoding='utf-8'?>
    
    <Context>
    
        <Resource name="jdbc/mysql"   
           auth="Container"   
           type="javax.sql.DataSource"   
           driverClassName="com.mysql.jdbc.Driver"   
           url="jdbc:mysql://localhost/bbs"   
           username="root"   
           password="root"   
           maxActive="50"   
           maxIdle="20"   
           maxWait="10000" />   
    
    </Context>
    


    第二步:在我们的WEB项目下的WEB-INF文件夹下建立一个web.xml(如果存在了就不用了,直接修改就行了)
    (这几天测试了一下,不做这步也可以,O(∩_∩)O哈哈~省事了)

    Xml代码 复制代码 收藏代码
    1. <resource-ref>  
    2.     <description>DB Connection</description>  
    3.     <res-ref-name>jdbc/mysql</res-ref-name>  
    4.     <res-type>javax.sql.DataSource</res-type>  
    5.     <res-auth>Container</res-auth>  
    6. </resource-ref>  
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/mysql</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    


    第三步:我们就可以用代码来获取Connection对象了

    Java代码 复制代码 收藏代码
    1. package xushun.util;   
    2.   
    3. import java.sql.*;   
    4. import javax.sql.*;   
    5. import javax.naming.*;   
    6.   
    7. public class DBHelper {   
    8.        
    9.     public static Connection getConnection() throws SQLException,NamingException   
    10.     {   
    11.         // 初始化查找命名空间   
    12.         Context initContext = new InitialContext();   
    13.         Context envContext = (Context)initContext.lookup("java:/comp/env");   
    14.         // 找到DataSource   
    15.         DataSource ds = (DataSource)envContext.lookup("jdbc/mysql");   
    16.         return ds.getConnection();   
    17.     }   
    18. }  
    package xushun.util;
    
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    
    public class DBHelper {
        
        public static Connection getConnection() throws SQLException,NamingException
        {
            // 初始化查找命名空间
            Context initContext = new InitialContext();
            Context envContext = (Context)initContext.lookup("java:/comp/env");
            // 找到DataSource
            DataSource ds = (DataSource)envContext.lookup("jdbc/mysql");
            return ds.getConnection();
        }
    }
    


    2.把DataSource设置到我们的Tomcat中,下面详细的介绍下(测试用的JAVA代码和上面的一样就不帖出了):
    这里我查到的设置方法就有了一点区别了。有的人把DataSource设置在Tomcat的server.xml文件的GlobalNamingResources下面,然后在context.xml中去映射。有的直接就写在context.xml中了
    先说下在server.xml添加DataSource
    第一步:在Tomcat的conf中的server.xml文件中找到

    Xml代码 复制代码 收藏代码
    1. <GlobalNamingResources>  
    2.   <!-- Editable user database that can also be used by   
    3.        UserDatabaseRealm to authenticate users   
    4.   -->  
    5.   <Resource name="UserDatabase" auth="Container"  
    6.             type="org.apache.catalina.UserDatabase"  
    7.             description="User database that can be updated and saved"  
    8.             factory="org.apache.catalina.users.MemoryUserDatabaseFactory"  
    9.             pathname="conf/tomcat-users.xml" />  
    10. </GlobalNamingResources>  
      <GlobalNamingResources>
        <!-- Editable user database that can also be used by
             UserDatabaseRealm to authenticate users
        -->
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>

    修改为

    Xml代码 复制代码 收藏代码
    1. <GlobalNamingResources>  
    2.   <!-- Editable user database that can also be used by   
    3.        UserDatabaseRealm to authenticate users   
    4.   -->  
    5.   <Resource name="UserDatabase" auth="Container"  
    6.             type="org.apache.catalina.UserDatabase"  
    7.             description="User database that can be updated and saved"  
    8.             factory="org.apache.catalina.users.MemoryUserDatabaseFactory"  
    9.             pathname="conf/tomcat-users.xml" />  
    10.   <Resource name="jdbc/bbs"        
    11.          auth="Container" type="javax.sql.DataSource"  
    12.          driverClassName="com.mysql.jdbc.Driver"  
    13.          maxIdle="20"  
    14.          maxWait="5000"  
    15.          username="root"  
    16.          password="admin"  
    17.          url="jdbc:mysql://localhost:3306/bbs"        
    18.          maxActive="100"    
    19.          removeAbandoned="true"  
    20.          removeAbandonedTimeout="60"  
    21.          logAbandoned="true"/>  
    22. </GlobalNamingResources>  
      <GlobalNamingResources>
        <!-- Editable user database that can also be used by
             UserDatabaseRealm to authenticate users
        -->
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
        <Resource name="jdbc/bbs"     
    	          auth="Container" type="javax.sql.DataSource"
    	          driverClassName="com.mysql.jdbc.Driver"
    	          maxIdle="20"
    	          maxWait="5000"
    	          username="root"
    	          password="admin"
    	          url="jdbc:mysql://localhost:3306/bbs"     
    	          maxActive="100" 
    	          removeAbandoned="true"
    	          removeAbandonedTimeout="60"
    	          logAbandoned="true"/>
      </GlobalNamingResources>


    第二步:在Tomcat的conf文件夹下的context.xml中加入

    Xml代码 复制代码 收藏代码
    1. <ResourceLink name="jdbc/bbs" global="jdbc/bbs" type="javax.sql.DataSource"/>  
    <ResourceLink name="jdbc/bbs" global="jdbc/bbs" type="javax.sql.DataSource"/>


    第三步:就是在WEB项目的WEB-INF中的web.xml添加

    Xml代码 复制代码 收藏代码
    1. <resource-ref>  
    2.     <description>DB Connection</description>  
    3.     <res-ref-name>jdbc/mysql</res-ref-name>  
    4.     <res-type>javax.sql.DataSource</res-type>  
    5.     <res-auth>Container</res-auth>  
    6. </resource-ref>  
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/mysql</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    


    还有就是在Tomcat文档中提到的方法,直接修改context.xml文件了
    在Tomcat的conf文件夹下的context.xml中加入

    Xml代码 复制代码 收藏代码
    1. <Resource name="jdbc/bbs"        
    2.               auth="Container" type="javax.sql.DataSource"  
    3.               driverClassName="com.mysql.jdbc.Driver"  
    4.               maxIdle="20"  
    5.               maxWait="5000"  
    6.               username="root"  
    7.               password="admin"  
    8.               url="jdbc:mysql://localhost:3306/bbs"        
    9.               maxActive="100"    
    10.               removeAbandoned="true"  
    11.               removeAbandonedTimeout="60"  
    12.               logAbandoned="true"/>  
    <Resource name="jdbc/bbs"     
    	          auth="Container" type="javax.sql.DataSource"
    	          driverClassName="com.mysql.jdbc.Driver"
    	          maxIdle="20"
    	          maxWait="5000"
    	          username="root"
    	          password="admin"
    	          url="jdbc:mysql://localhost:3306/bbs"     
    	          maxActive="100" 
    	          removeAbandoned="true"
    	          removeAbandonedTimeout="60"
    	          logAbandoned="true"/>

    然后就是在WEB项目的WEB-INF中的web.xml添加

    Xml代码 复制代码 收藏代码
    1. <resource-ref>  
    2.     <description>DB Connection</description>  
    3.     <res-ref-name>jdbc/mysql</res-ref-name>  
    4.     <res-type>javax.sql.DataSource</res-type>  
    5.     <res-auth>Container</res-auth>  
    6. </resource-ref>  
      <resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/mysql</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    


    就是这些了,如果有什么不太清楚的就留言,一起研究下。等以后我在搜集下资料整理出上面用到的XML文件中各个标签的属性及其代表的意思。有兴趣的也可以自己先查下。:-)

    <td>JNDI 查找名称</td>       <td>关联的引用</td>

    <td>java:comp/env</td>      <td>应用程序环境条目</td>

    <td>java:comp/env/jdbc</td> <td>JDBC 数据源资源管理器连接工厂</td>

    <td>java:comp/env/ejb</td>  <td>EJB 引用</td>

    <td>java:comp/UserTransaction</td><td>UserTransaction 引用</td>

    <td>java:comp/env/mail</td> <td>JavaMail 会话连接工厂</td>

    <td>java:comp/env/url</td>  <td>URL 连接工厂</td>

    <td>java:comp/env/jms</td>  <td>JMS 连接工厂和目标</td>

    <td>java:comp/ORB</td>      <td>应用程序组件之间共享的 ORB 实例</td>

  • 相关阅读:
    【MFC】在CHtmlView中在同一窗口显示新打开页面
    【MFC】CHtmlView::GetSource中文乱码的问题
    【Win32】对指定进程进行禁音
    【MFC】在CHtmlView中准确判断页面加载完成
    【MFC】CHtmlView或WebBrowser禁止脚本错误提示
    【MFC】CDialogBar中按钮不可用
    【转载记录】Accessing Device Drivers from C#
    【源代码R3】移植一份LARGE_INTEGER转时间的代码
    Square Root of Permutation
    MySQL创建视图命令
  • 原文地址:https://www.cnblogs.com/zhwl/p/2822657.html
Copyright © 2011-2022 走看看