tomcat+mysql数据库的连接池配置

类别:Java 点击:0 评论:0 推荐:

1)下载mm.mysql-2.0.14-bin.jar包,放在tomcat目录下的common/lib文件夹中

2)在tomcat目录下的conf/server.xml中的</Host>前加入(注意:全部大写的地方要替换成你自己的东西)

<!--for mysql database connection pool-->
<Context path="/APPLICATION_NAME" docBase="APPLICATIOIN_NAME" debug="5" reloadable="true" crossContext="true"> 
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>
          <Resource name="jdbc/DATABASE_NAME" auth="Container" type="javax.sql.DataSource"/>
          <ResourceParams name="jdbc/DATABASE_NAME">  
                   <parameter>
                               <name>factory</name>  
                               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>  
                   </parameter>  

                                <!-- Class name for mm.mysql JDBC driver --> 
                   <parameter>   
                                <name>driverClassName</name>     
                                <value>org.gjt.mm.mysql.Driver</value>  
                   </parameter>

                                <!-- The JDBC connection url for connecting to your MySQL dB.      
                                     The autoReconnect=true argument to the url makes sure that the    
                                     mm.mysql JDBC Driver will automatically reconnect if mysqld closed
                                     the connection.  mysqld by default closes idle connections after 8 hours.--> 
                   <parameter> 
                                <name>url</name>
                                <value>jdbc:mysql://localhost:3306/DATABASE_NAME?autoReconnect=true</value>
                   </parameter>

                                <!-- MySQL dB username and password for dB connections  --> 
                   <parameter> 
                                <name>username</name>  
                                <value>DB_USERNAME</value>  
                   </parameter>  

                   <parameter>  
                                <name>password</name>
                                <value>DB_PASSWORD</value>  
                   </parameter>

                                 <!-- Maximum number of dB connections in pool. Make sure you
                                      configure your mysqld max_connections large enough to handle     
                                      all of your db connections. Set to 0 for no limit.-->
                   <parameter>   
                                <name>maxActive</name>  
                                <value>100</value>  
                   </parameter> 

                                 <!-- Maximum number of idle dB connections to retain in pool.
                                      Set to 0 for no limit. --> 
                   <parameter> 
                                <name>maxIdle</name>
                                <value>30</value>
                   </parameter>

                                <!-- Maximum time to wait for a dB connection to become available in ms,
                                     in this example 10 seconds. An Exception is thrown if this timeout
                                     is exceeded.  Set to -1 to wait indefinitely.-->  
                   <parameter>    
                       <name>maxWait</name>
                       <value>10000</value> 
                   </parameter>  
        </ResourceParams>
</Context>
这样就算连接完了

3)测试:

DATABASE_NAME:testdb

APPLICATION_NAME:mysqlTest

在testdb数据库里新建表userinfo

id   |   username
1        aaa
2        bbb

4)web.xml

<web-app>

<resource-ref>
  <description>MySQL  Datasource  example</description>
  <res-ref-name>jdbc/testdb</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

</web-app>

5)index.jsp

<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,javax.naming.*"%>

<% Context initCtx = new InitialContext();
  Context ctx = (Context) initCtx.lookup("java:comp/env");
  Object obj = (Object) ctx.lookup("jdbc/testdb");   
  javax.sql.DataSource ds = (javax.sql.DataSource)obj;
  Connection conn = ds.getConnection();
  Statement stmt = conn.createStatement();
  String strSql = "select * from userinfo";
  ResultSet rs = stmt.executeQuery(strSql);%>

<body>
 <%while(rs.next()){%>
 <p>
 <%=rs.getString("username")%>
 </p>
 <%}%>
<body>

可以看到输出结果为:

aaa
bbb

本文地址:http://com.8s8s.com/it/it10692.htm