`
紫_色
  • 浏览: 142782 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Tomcat7.x 连接池配置

    博客分类:
  • J2EE
阅读更多

首先要确认在项目下已经有了相关的数据库连接驱动包,下面例子我用的是IBM DB2 10.1 Express-C 做演示:
第一步:在Tomcat的配置文件%TOMCAT_HOME%\conf\context.xml中添加信息:

<Resource auth="Container" driverClassName="com.ibm.db2.jcc.DB2Driver"
maxActive="8" maxIdle="4" maxWait="3000" name="jdbc/text"
username="db2admin" password="db2admin" type="javax.sql.DataSource"
url="jdbc:db2://127.0.0.1:50000/text" />

 

type:数据源方式。

driverClassName:驱动程序名称。(此文中是DB2驱动程序)

username,password:数据库名称和密码

name:注册到JNDI树上的名称(JNDI采用树形结构管理我们的对象)

url:数据库连接字符串

maxActive:并发连接的最大数。设置为0则无限制。

maxWait:等待连接的最大连接的时间。

maxIdle:初始时连接池中空闲的连接的个数。

  上文中的设置的 maxActive="8"说明可以最大连接的个数为8个,再建立连接,则出现异常。

 

第二步:把配置文件context.xml剪切到WebRoot/META-INF中。(若是只有一个项目使用连接池的话,则剪切到使用连接池项目WebRoot/META-INF中。若是多个项目都使用连接池,则不进行操作第二步。)

 

第三步:则在程序中获得连接:

 

新建一个jsp页面Test.jsp进行测试:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page language="java"
	import="java.util.*,javax.naming.*,java.sql.*,javax.sql.*"%>
<%
	Connection conn = null;
	PreparedStatement pstat = null;
	ResultSet resu = null;
	try {

		Context ctx = new InitialContext();

		//获取JNDI名称
		String strLookup = "java:comp/env/jdbc/drp";

		//从JNDI树上取得连接池实现
		DataSource dataSource = (DataSource) ctx.lookup(strLookup);
		conn = dataSource.getConnection();
		pstat = conn
				.prepareStatement("SELECT USER_ID, USER_NAME, PASSWORD, CONTACT_TEL, EMAIL,CREATE_DATE FROM T_USER");
		resu = pstat.executeQuery();
		while (resu.next()) {
			System.out.println(resu.getString("USER_NAME"));
		}
	} finally {
		if (resu != null) {
			resu.close();
		}
		if (pstat != null) {
			pstat.close();
		}
		if (conn != null) {
			conn.close();
		}
	}
%>

 

注意使用完连接后一定要记得释放,要不然当连接池中的连接用完后会抛出导常(这样的问题在大的项目中很难发现)

1
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics