qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

怎样配置Tomcat6.0的数据库连接池详解

 Tomcat自带数据库连接池,但是需要进行相应的配置才能使用Tomcat的数据库连接池。此文只针对Tomcat6.0进行配置。

  1.在自己的项目下的META-INF(注意:不是WEB-INF,我看网上很多人都弄错了)下面新建一个context.xml文件,文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>   //监听资源
<Resource
name="myoracle"                //给资源随便起一个名字,用于在程序中调用。
auth="Container"                                  //
type="javax.sql.DataSource"       //资源类型
driverClassName="oracle.jdbc.OracleDriver" //加载驱动,每种数据库的方式不同,自己参考资料。
url="jdbc:oracle:thin:@localhost:1521:ICSS" //连接字符串,相信大家不陌生。
username="jsp"            //访问数据库用户名
password="jsp"                          //访问数据库的密码
maxActive="200"                      //最大可以有200名用户连接数据源
maxIdle="10"                              //如果没有用户连接,空出10个连接等待用户连接
maxWait="5000"/> //如果已连接用户5000秒内没有再次连接数据源,则放弃此连接
</Context>

  2.如果不是用的myeclipse自带的tomcat,则要到那个tomcat下面conf\Catalina\localhost删除host-manager.xml和manager.xml。

  3.然后就在servlet里面调用了,调用方法:

  需要用到的引用:

import javax.sql.DataSource;
import javax.naming.InitialContext;
import java.sql.Connection;

InitialContext initCtx = new InitialContext();  //
//下面的” java:comp/env”是固定的,”myoracle”是在context.xml中指定的name。
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/myoracle");
Connection conn = ds.getConnection();  //获取连接。


  附加:

  1.Sql server 的context.xml配置:

<Resource
name="名字"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="5000"
username="用户名"
password="密码"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=数据库名"
/

 2.oracle的context.xml配置:(已经在上面展示过了)

  3.mysql的context.xml配置:

<Resource name="名字" 
auth="Container" 
type="javax.sql.DataSource" //资源类型 
driverClassName="org.gjt.mm.mysql.Driver" 
url="jdbc:mysql://localhost/数据库名"  
username="用户名" 
password="密码" 
maxActive="100" //最大连结数 
maxIdle="30" //最大空闲时间,0为无限制 
maxWait="10000"/> //建立连接的的最大等待时间

  ---------------------以下已经实现过----------------------------------------

  以下是我工程中用到的一个实例(sql2005):

  context.xml内容:

<?xml version="1.0" encoding="GBK"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!--2000:driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"-->
<!--2000:url="jdbc:microsoft:sqlserver://192.168.0.15:1433;DatabaseName=XR-2000" -->
<!--2005:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"-->
<!--2005:url="jdbc:sqlserver://localhost:1433;DatabaseName=XR-2000" -->
<Resource
name="jdbc/sql"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=XR-2000"
username="sa"
password="123456"
maxActive="200"
maxIdle="50"
maxWait="-1"/>
</Context>

  调用:

Context ctx = null;
try {
ctx = new InitialContext();
} catch (NamingException e1) {
}

DataSource ds = null;
try {
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sql");
} catch (NamingException e2) {
}

Connection conn = null;
try {
conn = ds.getConnection();
} catch (SQLException e3) {
}

Statement stmt = null;
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);//红色部分这样定义就可以使用rs.last()方法了
} catch (SQLException e) {
}



posted on 2013-08-06 10:18 顺其自然EVO 阅读(252) 评论(0)  编辑  收藏 所属分类: 数据库


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


网站导航:
 
<2013年8月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜