一.在tomcat_home\common\lib下放入jdbc的驱动程序,额外说一下,如果是使用sql server的话,有至少两个驱动可以选择,一个是微软提供的,另一个是 jtds,比微软的要好很多,推荐使用
二.配置文件,tomcat 不同的版本配置文件略有不同,下面以tomcat5..5.*为例。
三.如果配置不正确会出现javax.naming.NameNotFoundException: Name is not bound in this Context 错误
方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcat\conf\context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部数据库连接池
只需在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" validationQuery="select 1" 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)。
下面 分别举tomcat5.0 和tomcat 5.5 配置文件 的例子(将此配置文件置于Tomcat \conf\Catalina\localhost 下)
tomcat5.0
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/test">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<!-- Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>test</value>
</parameter>
<!-- Class name for JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<!-- Autocommit setting. This setting is required to make
Hibernate work. Or you can remove calls to commit(). -->
<parameter>
<name>defaultAutoCommit</name>
<value>true</value>
</parameter>
<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://url/filedb;charset=gb2312;autoReconnect=true</value>
</parameter>
<!-- Recover abandoned connections -->
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<!-- Set the number of seconds a dB connection has been idle
before it is considered abandoned.
-->
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<!-- Log a stack trace of the code which abandoned the dB
connection resources.
-->
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
</ResourceParams>
tomcat 5.5
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
driverClassName="oracle.jdbc.driver.OracleDriver"
username="test" password="test"
url="jdbc:oracle:thin:@url:1521:dcdb"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
1.将数据库驱动程序的JAR文件放在Tomcat的 common/lib 中;
2.在TOMCATE中的server.xml中设置数据源,以MySQL数据库为例,如下:
在<GlobalNamingResources> </GlobalNamingResources>节点中加入,
<Resource
name="jdbc/WSPool"
type="javax.sql.DataSource"
password="root"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://127.0.0.1:3306/test"
maxActive="4"/>
属性说明:name,数据源名称,通常取”jdbc/XXX”的格式;
type,”javax.sql.DataSource”;
password,数据库用户密码;
driveClassName,数据库驱动;
maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连
接将被标记为不可用,然后被释放。设为0表示无限制。
MaxActive,连接池的最大数据库连接数。设为0表示无限制。
maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示
无限制。
3.在个人的web应用程序的web.xml中设置数据源参考,如下:
在<web-app></web-app>节点中加入,
<resource-ref>
<description>DB Connection Pool</description>
<res-ref-name>jdbc/WSPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
子节点说明: description,描述信息;
res-ref-name,参考数据源名字,同上一步的属性name;
res-type,资源类型,”javax.sql.DataSource”;
res-auth,”Container”;
res-sharing-scope,”Shareable”;
4.在TOMCATE中的web应用程序的context.xml中设置数据源链接,如下:
在<Context></Context>节点中加入,
<ResourceLink
name="jdbc/WSPool"
type="javax.sql.DataSource"
global="jdbc/WSPool"/>
属性说明:name,同第2步和第3步的属性name值,和子节点res-ref-name值;
type,同样取”javax.sql.DataSource”;
global,同name值。
至此,设置完成,下面是如何使用数据库连接池。
1.建立一个连接池类,DBPool.java,用来创建连接池,代码如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
private static DataSource pool;
static {
Context env = null;
try {
env = (Context) new InitialContext().lookup("java:comp/env");
pool = (DataSource)env.lookup("jdbc/WSPool");
if(pool==null)
System.err.println("'DBPool' is an unknown DataSource");
} catch(NamingException ne) {
ne.printStackTrace();
}
}
public static DataSource getPool() {
return pool;
}
}
2.在要用到数据库操作的类或jsp页面中,用DBPool.getPool().getConnection(),获得一个Connection对象,就可以进行数据库操作,最后别忘了对Connection对象调用close()方法,注意:这里不会关闭这个Connection,而是将这个Connection放回数据库连接池。
1)启动Tomcat服务器,打开浏览器,输入http://localhost:8080/admin(其中localhost是名称服务器或称为主机),
进入管理界面的登陆页面,这时候请输入原来安装时要求输入的用户名和密码,登陆到管理界面,
2)选择Resources-Data sources进入配置数据源界面,选择
Data Source Actions ->选择Create New Data Source,进入配置详细信息界面
主要内容例如下:
JNDI Name: ->jdbc/mysql
Data Source URL ->jdbc:mysql://localhost:3306/test
JDBC Driver Class-> org.gjt.mm.mysql.Driver
3)修改\conf\Catalina\localhost目录下建立一个xml文件,名称为你所发布的web应用的名称.xml,(如testpool.xml)打开添加内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
password="123456"
driverClassName="org.gjt.mm.mysql.Driver"
maxIdle="2"
maxWait="50"
username="root"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>
</Context>
内容同conf/server.xml中<GlobalNamingResources>
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
password="123456"
driverClassName="org.gjt.mm.mysql.Driver"
maxIdle="2"
maxWait="50"
username="root"
url="jdbc:mysql://localhost:3306/test"
maxActive="4"/>
</GlobalNamingResources>
少了这一步会报错:Cannot create JDBC driver of class '' for connect URL 'null'
4)修改web.xml
打开%TOMCAT_HOME%\conf\web.xml或yourwebapp/web-inf/web.xml,添加以下内容:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。
到这里,配置工作就基本完成了!
5)引用JNDI时用"java:comp/env/jdbc/mysql";
建立文件测试 test.jsp:
<%@page contentType="text/html;charset=utf-8" %>
<%@page import="java.sql.*" %>
<%@page import="javax.sql.*" %>
<%@page import="javax.naming.*" %>
<html>
<head>
<title>Tomcat连接池测试</title>
</head>
<body>
<%
Context ctx=new InitialContext();
Connection conn=null;
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
conn=ds.getConnection();
Statement stmt=conn.createStatement(ResultSet.CONCUR_READ_ONLY,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from testexample");
while(rs.next()){
out.println(rs.getInt(1));
out.println(rs.getString(2));
out.println(rs.getString(3));
}
out.println("数据库操作成功!");
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
发表评论
-
nginx代理IIS轻松实现支持JSP,PHP,ASP平台
2012-05-12 21:16 1626通过使用高效代理服务器nginx代理IIS轻松实现支持JSP, ... -
OpenSessionInViewFilter的使用
2011-06-22 11:34 735一、作用 Spring为我们解决Hibernate的Sess ... -
tomcat服务器使用url rewrite1
2011-05-19 18:25 1481让tomcat服务器使用url rewrite1. 第 ... -
CountDownLatch闭锁详解
2011-05-09 10:29 1321闭锁(Latch) 闭锁(Latch):一种同步方法,可以延 ... -
memcache/memcached/memcachedb 配置、安装
2011-05-05 15:44 1205memcache/memcached/memcachedb ... -
jquery.treeview使用
2011-03-25 18:31 1535这几天项目中要用到树型结构,正好项目中用到了JQuery,所以 ... -
集群的可扩展性及其分布式体系结构
2011-03-17 14:54 1107常见的平衡算法 一般 ... -
strust2防止重复提交
2011-03-15 10:05 1130在请求表单中添加<s:token></s:t ... -
源码中没有任何错误目录中还存在红叉
2011-02-26 17:04 772查看.classpath文件。修改正确配置!lib与src -
长连接与短连接
2011-01-04 15:44 1116长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送 ... -
带“+”号的参数值通过url传递,后台取不到正确值
2010-11-29 15:19 2485带“+”号的参数值通过url传递,后台取不到正确值 问题是这样 ... -
JCom的使用
2010-11-08 11:15 2777JCom可以支持打印,支持生成word,生成Excel,并且可 ... -
利用java操作Excel文件
2010-10-28 16:45 751利用java操作Excel文件 很久以来都想 ... -
XSL将XML转换成HTML文件 js方法
2010-10-22 14:34 3018JavaScript解决方案XSL是如何将XML转换成HTML ... -
web.xml详解
2010-10-22 09:18 673部署描述符实际上是一个XML文件,包含了很多描述servlet ... -
jsvalidation表单验证框架使用相关问题
2010-10-05 18:57 11341、如果验证框架没有起作用,就先把验证框架的js文件、x ... -
java中调用c(c++)写的dll 文件的实现及步骤
2010-09-08 10:08 1821JNI使用技巧点滴本文为 ... -
我的站点
2010-01-09 10:43 0www.51sj.com 我要设计 www.52sj.co ... -
Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
2009-12-18 21:31 2336说明: 在创建数据库时输入的密码,是修改系统默认的密码,以sy ... -
jdbc连接各种数据库
2009-12-18 21:08 817一、jsp连接Oracle8/8i/9i数据库(用thin模式 ...
相关推荐
总结来说,Tomcat数据库连接池的使用涉及添加依赖、配置数据源、上下文配置以及代码中的使用。理解并正确配置这些环节,能帮助Java开发者充分利用连接池的优势,提高应用的运行效率。同时,根据实际需求选择合适的...
Tomcat 数据库连接池设置 Tomcat 数据库连接池是一种高效的数据库连接管理机制,它能够帮助开发者快速建立和管理数据库连接,提高应用程序的性能和可靠性。在本文中,我们将详细介绍 Tomcat 数据库连接池的设置过程...
Tomcat数据库连接池,也称为JDBC连接池,是Tomcat服务器中的一个关键组件,用于管理和优化数据库连接的使用。它在应用程序需要频繁与数据库交互时扮演着重要角色,通过复用已建立的数据库连接,避免了每次请求数据库...
《TOMCAT数据库连接池配置详解》 TOMCAT数据库连接池配置是Java Web开发中不可或缺的一环,它能够有效地管理和优化数据库连接,提高系统性能。以下是对TOMCAT数据库连接池配置的详细说明。 首先,你需要下载TOMCAT...
Tomcat数据库连接池的配置方法总结 Tomcat数据库连接池的配置方法总结是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这...
### Tomcat 数据库连接池配置详解 在Java Web开发中,Tomcat作为一款广泛使用的应用服务器,其数据库连接池配置是十分重要的一个环节。合理的配置能够显著提高应用程序的性能和稳定性。本文将以MySQL数据库为例,...
tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上文章&csdn上的代码tomcat数据库连接池配置网上...
### 如何设置TOMCAT数据库连接池 #### 一、理解数据库连接池 数据库连接池是一种用于管理数据库连接的技术,可以提高应用程序访问数据库的效率。通过预先创建一定数量的数据库连接,并将这些连接保存在一个“池”...
tomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXTtomcat数据库连接池配置.TXT
支持tomcat服务器的数据库连接池,用于jdbc桥连接
Tomcat数据库连接池 几种常见的配制方法
在Tomcat中实现数据库连接池,主要依赖于两个Apache Commons库:`commons-dbcp.jar`和`commons-pool.jar`。 `commons-dbcp.jar`是Apache Commons Database Connection Pooling(DBCP)的实现,它提供了一个数据库...
这个例子展示了如何在Web应用程序中使用DWR与Tomcat数据库连接池来实现Ajax交互,从而实现实时的客户端-服务器通信。 首先,我们需要了解DWR的基本工作原理。DWR允许JavaScript在用户的浏览器中直接调用服务器端的...
【使用dbutils获取tomcat数据库连接池】 Apache Commons DBUtils是一个轻量级的Java库,它简化了对JDBC API的使用,通过提供一个抽象层来处理常见的数据库操作,如查询、更新等,从而减少代码量和出错的可能性。本...
在Java Web开发中,数据库连接池是一种重要的技术,它能有效地管理和复用数据库连接,提高系统的性能和效率。本实例将介绍如何在Oracle XE数据库与Tomcat之间配置连接池。 首先,我们需要了解连接池的基本概念。...
总结,配置Tomcat数据库连接池是Java Web开发中的重要环节,合理的配置和使用能显著提升系统的稳定性和性能。理解连接池的工作原理和配置方法,有助于我们在实际项目中更好地管理和优化数据库资源。
本文档将详细介绍如何在自安装的Tomcat服务器以及JBuilder自带的Tomcat中配置数据库连接池,确保开发与调试过程中的高效性。 #### 二、准备工作 1. **安装Tomcat** - 确保安装的Tomcat版本支持数据库连接池功能...