随笔-153  评论-235  文章-19  trackbacks-0
Tomcat 中Jndi是使用Tomcat自带的连接池
抛弃Tomcat自带的连接池。使用c3p0 。

环境:Tomcat 5.5.20
下面配置只适合Tomcat 5.5.X


下面来看Jndi 与 c3p0 结合:
c3p0 下载地址:http://nchc.dl.sourceforge.net/sourceforge/c3p0/c3p0-0.9.0.4.bin.zip
把 c3p0-0.9.0.4.jar 放到应用服务的WEB-INF/lib目录下。如:DBTest/WEB-INF/lib

1.在server.xml中<Context></Context>内加<Resource />,完整的示例:
<Context path="/DBTest" docBase="DBTest"
        debug
="5" reloadable="true" crossContext="true">
<Resource auth="Container"
 driverClass
="com.mysql.jdbc.Driver"
                                    maxPoolSize
="50" minPoolSize="2" acquireIncrement="2"
                                    name
="jdbc/connPool" user="root" password=""
                                    factory
="org.apache.naming.factory.BeanFactory"
                                    type
="com.mchange.v2.c3p0.ComboPooledDataSource"
                                    jdbcUrl
="jdbc:mysql://localhost:3306/test" />
</Context>


2.在web.xml添加:
  <resource-ref>
      
<description>DB Connection</description>
      
<res-ref-name>jdbc/connPool</res-ref-name>
      
<res-type>javax.sql.DataSource</res-type>
      
<res-auth>Container</res-auth>
  
</resource-ref>

3.测试页面testConnPool.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/connPool">
select id, typename from text
</sql:query>

<html>
  
<head>
    
<title>DB Test Conn Pool c3p0 and Jndi</title>
  
</head>
  
<body>

  
<h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    id: ${row.id}
<br/>
    name: ${row.typename}
<br/>
</c:forEach>

  
</body>
</html>
posted on 2007-03-18 16:46 流浪汗 阅读(2877) 评论(0)  编辑  收藏 所属分类: Tomcat

只有注册用户登录后才能发表评论。


网站导航: