2008年5月10日星期六

Tomcat 5.5以上版本中数据库连接池的设置

在WebRoot下-INF目录中新建文件context.xml,内容如下

<Context path="/doclib" docBase="doclib" debug="5" reloadable="true" crossContext="true" >
<Resource name="jdbc/doclib" auth="Container"
            type="javax.sql.DataSource" username="" password=""
            driverClassName="sun.jdbc.odbc.JdbcOdbcDriver" url="jdbc:odbc:doclib"
            maxActive="8" maxIdle="4"/>
</Context>

用于取得数据库连接的Java Bean

import java.sql.Connection;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

/**
* 从系统配置的JNDI数据连接池中获得数据库连接
*
* @author jimshen
*
*/
public class JndiBean {
/**
  * 从系统配置的JNDI数据连接池中获得数据库连接
  *
  * @return 获得的数据库连接,该连接在使用之后应该释放(close)
  * @throws Exception
  */
public static Connection getConnection() throws Exception {
  Connection conn = null;
  Context initCtx = new InitialContext();
  Context envCtx = (Context) initCtx.lookup("java:comp/env");
  DataSource ds = (DataSource) envCtx.lookup("jdbc/doclib");
  if (ds != null) {
   conn = ds.getConnection();
  } else
   throw new Exception("Can't find JNDI data source!");
  if (conn == null)
   throw new Exception("Can't establish connection!");
  return conn;
}
}

使用示例
Connection conn=JndiBean.getConnection();
....
conn.close();

没有评论:

发表评论