转自:
http://qiufubin.blog.sohu.com/55457392.html
一.在tomcat_home\common\lib下放入jdbc的驱动程序,额外说一下,如果是使用sql server的话,有至少两个驱动可以选择,一个是微软提供的,另一个是 jtds,比微软的要好很多,推荐使用
二.配置文件,tomcat 不同的版本配置文件略有不同,下面以tomcat5.5.*为例,如果配置不正确会出现javax.naming.NameNotFoundException: Name is not bound in this Context 错误
方式一、全局数据库连接池(Mysql数据库)
1、通过管理界面配置连接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加
<Resource
auth="Container"
description="DB Connection"
driverClass="com.mysql.jdbc.Driver"
maxPoolSize="10" minPoolSize="2"
acquireIncrement="2"
name="jdbc/connPool"
user="root"
password="111111"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:mysql://localhost:3306/haixu?autoReconnect=true" />
2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink
name="jdbc/connPool"
global="jdbc/connPool"
type="javax.sql.DataSource"/>
这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:
<ResourceLink
global="jdbc/mydb"
name="jdbc/mydb"
type="javax.sql.DataSource"/>
方式三、局部数据库连接池(mssql数据库)
只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加:
<Resource
name="jdbc/mydb"
type="javax.sql.DataSource"
password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"
maxActive="4"/>
参数说明:
driveClassName:JDBC驱动类的完整的名称;
maxActive:同时能够从连接池中被分配的可用实例的最大数;
maxIdle:可以同时闲置在连接池中的连接的最大数;
maxWait:最大超时时间,以毫秒计;
password:用户密码;
url:到JDBC的URL连接;
user:用户名称;
validationQuery:用来查询池中空闲的连接。
以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。
---------------------------------------------------------------------------
总结一下我的配置步骤:
(1)有三个文件需要配置
1>\Tomcat 5.5\conf\server.xml
2>\Tomcat 5.5\conf\context.xml
3>项目中\WebRoot\WEB-INF\web.xml
(2)配置的代码
1> 在tomcat\conf\server.xml的GlobalNamingResources中增加:
<Resource auth="Container"
description="DB Connection"
driverClass="com.mysql.jdbc.Driver"
maxPoolSize="10"
minPoolSize="2"
acquireIncrement="2"
name="jdbc/connPool"
user="用户名"
password="密码"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
jdbcUrl="jdbc:mysql://localhost:3306/数据库名?autoReconnect=true" />
2> 在tomcat\conf\context.xml的Context中增加:
<ResourceLink
name="jdbc/connPool"
global="jdbc/connPool"
type="javax.sql.DataSource"/>
3> 在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)jsp测试页面
<%@page language="java" import="java.util.*,java.sql.*,javax.naming.*,javax.sql.*" pageEncoding="GB2312"%>
<%@page import="com.mchange.v2.c3p0.*"%>
<%@page import="java.sql.Connection"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'mysqlTest.jsp' starting page</title>
</head>
<body>
Mysql数据库测试<br><br><br>
<%
Connection conn=null;
try
{
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/connPool");
conn=ds.getConnection();
}
catch(NamingException ex)
{
ex.printStackTrace();
}
String sql="select * from user";
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
while(rs.next())
{
%>
字段1:<%=rs.getString(1)%> 字段2:<%=rs.getString(2)%><br>
<%
}
if(rs!=null)
{
rs.close();
rs=null;
}
if(ps!=null)
{
ps.close();
ps=null;
}
if(conn!=null)
{
conn.close();
conn=null;
}
%>
</body>
</html>
分享到:
相关推荐
下面我们将详细探讨C3P0连接池的使用以及所需的jar包。 首先,C3P0连接池的主要功能包括: 1. **连接管理**:C3P0可以自动创建、测试、回收和关闭数据库连接,避免了手动管理连接的繁琐工作,降低了系统资源的消耗...
在本教程中,我们将深入探讨“day18 17.c3p0连接池使用”的相关知识点,包括C3P0的基本概念、配置、优势以及如何在实际项目中应用。 首先,理解C3P0的核心功能。C3P0连接池的主要任务是管理和复用数据库连接,避免...
**c3p0连接池使用方法** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用c3p0连接池可以有效地管理和优化数据库连接,提高系统的性能和稳定性。以下是关于c3p0连接池...
C3P0连接池是Java应用中常用的数据库连接池组件,它允许程序在不关闭物理连接的情况下,管理和重用数据库连接,从而提高了应用程序的性能和效率。C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`...
4. **C3P0使用**: - 添加依赖:在项目中引入C3P0的JAR包,如`lib/c3p0-*.jar`,同时可能需要包含其他的依赖,如`lib/mchange-commons-java-*.jar`。 - 创建数据源:通过`...
1. **连接池管理**:C3P0可以创建并维护一定数量的数据库连接,当应用程序需要时,可以从连接池中获取连接,用完后归还,而不是每次使用都创建新的连接,这大大减少了数据库连接的创建和销毁开销。 2. **自动检测与...
#### 五、C3P0连接池的使用场景 C3P0连接池广泛应用于以下几种场景: - **Web应用开发**:在Web应用中,C3P0可以有效地管理与数据库的连接,提高系统的响应速度。 - **企业级应用开发**:对于高并发的企业级应用,C3...
C3P0数据库连接池是Java开发中广泛使用的开源组件,用于管理数据库连接,提高数据库访问效率并降低系统资源消耗。源代码分析可以帮助我们深入理解其内部机制,从而更好地优化和配置C3P0,提升应用程序性能。 1. **...
总之,c3p0连接池是Java应用中管理数据库连接的有效工具,通过合理配置和使用,可以显著提高系统的运行效率和稳定性。在实际开发中,应结合具体项目需求选择合适的连接池,并进行持续监控和优化。
在Java应用中,尤其是在Web应用中,频繁的数据库连接创建和关闭会消耗大量的系统资源,而通过使用C3P0这样的连接池,可以预先配置并创建一定数量的数据库连接,供多个请求共享,从而减少了数据库连接的创建和销毁...
**C3P0连接池配置详解** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点是轻量级、高效且稳定,广泛应用于各种Java Web应用中。在本文中,我们将深入探讨...
C3P0数据库连接池和jar包,因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉。而每次新建连接都需要140毫秒左右的时间,所以耗费时间比较多。若使用C3P0连接池来池化...
**c3p0连接池配置使用** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。使用c3p0连接池可以有效地管理和优化数据库连接,提高系统的性能和稳定性。下面将详细介绍c3p0的...
`c3p0-0.9.1.2.jar`是C3P0的jar包文件,包含了C3P0的所有类和方法,导入此库后,我们可以在项目中直接使用C3P0连接池。 C3P0的官方开发文档详细介绍了C3P0的配置、使用方法、API接口及常见问题解答,对于开发者来说...
JDBC中C3p0连接池使用方法 (个人总结综合教程,适合新入门的朋友阅读)
c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包
总之,c3p0作为一款成熟的数据库连接池,通过合理的配置和使用,可以在保证应用性能的同时,有效地管理和维护数据库连接,降低资源消耗。在实际项目中,选择适合的连接池需要综合考虑项目的特性和需求。