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

Tomcat数据元连接
在tomcat6.0.2中配置mysql连接池
现在的tomcat6.x还是beta的。下来看了看。配置了一下连接池,很简单。具体方法如下:1、在你的项目根目录下建立META-INF文件夹,创建一个名为context.xml的文件<host></host>中,内存如下:
<Context> 
<Resource name="jdbc/mysql" auth="Container" 
type="javax.sql.DataSource"
username="root" 
password="gavin" 
driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost:3306/mysql"
 maxActive="8" maxIdle="4"/> 
</Context> 
2、把mysql的驱动copy到你的项目lib中。3、编写测试文件. 我用mysql自己的库数据库。在mysql默认安装完后会有一个叫mysql的数据库,以它为例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%    try {     
  Context initCtx = new InitialContext();
  Context envCtx = (Context) initCtx.lookup("java:comp/env");  
  DataSource ds = (DataSource) envCtx.lookup("jdbc/mysql"); 
  Connection conn = ds.getConnection();
  Statement stmt = conn.createStatement();
  ResultSet rst = stmt.executeQuery("describe host");
   while (rst.next()) { 
         out.println(rst.getString(1) + "<BR/>");   
    }     
  conn.close();   
 } catch (Exception e) {  
     out.println(e);  
  }%>
最后启动tomcat,如果前面的步骤都是成功的,即可看到mysql数据库下host表的表结构。补充一下,在context.xml文件中,driverClassName 是你的驱动的路径url 是驱动的urlmaxActive 是在同一时刻能够能连接池中分配的最大连接数maxIdle 在同一时刻连接池中空闲的最大数量还有一些参数大家可以参考tomcat文档.此文参考http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html

2.说出数据连接池的工作机制是什么?


http://hi.baidu.com/%B0%D9%BE%FD/blog/item/cc3ea40e69553ae236d122a4.html

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲