Tomcat6.0 连接池(与MySQL数据库连接)的配置

Tomcat6.0比较新,对于数据库连接池的配置方法,比以前更容易理解,此处实用的数据库是MySQL,其他的也都大同小异。
     $CATALINA_HOME为Tomcat的安装目录。
方法一:
    这就是以前修改 $CATALINA_HOME/conf/server.xml的方法,修改后就可以全局性的使用。在server.xml中的<context></context>中进行配置。  
    官方给出的配置方法如下:
【简要说明一下要用到的参数:path是你的工程(程序)的相对路径】
<Context path="/DBTest" docBase="DBTest"
        debug="5" reloadable="true" crossContext="true">
【Resource中:name:你的此资源的名称,在这里是数据库连接,一般使用
jdbc/xxx的形式;auth是拥有者,设置成容器(Container)就可以;type是类型,数据资源就是javax.sql.DataSource;maxActive就是连接池中最大连接数,这个根据自己情况设置,保证足够就行,0的话表示不限制;maxIdle是连接池中最大空闲的连接数,-1表示不限制;maxWait是最大等待时间,单位是毫秒(ms),-1表示无限等待;username是连接数据库用的用户名;password是连接数据库用的与用户名对应的密码;driverClassName是连接驱动程序的名称,MySQL数据库的连接驱动名称就是com.mysql.jdbc.Driver(下载地址:http://dev.mysql.com/downloads/connector/j/5.0.html)下载完解压缩后把那个.jar文件拷贝到$CATALINA_HOME/lib目录下,最好在你
程序目录/WEB-INF/lib目录中也拷贝一份;url是连接数据库实用的地址,jdbc:mysql://localhost:3306/javatest?autoReconnect=true前面是固定的,localhost是本机ip地址,如果在别的机器上可以输入其ip,:3306表示MySQL数据库的端口号,javatest表示的是实用的数据库(Database)的名称,后面那个标示是否自动重新连接】
  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>
上面配置好了之后配置你的 程序目录/WEB-INF/web.xml
内容如下:
【是在<web-app></web-app>中配置,前面的这些一般照抄就可以】
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
【description是描述,就是说明内容,个人喜好随便写;res-ref-name是上面配置里面写的那个数据资源的名称,res-type是上面写的那个数据资源类型,res-auth是上面写的那个拥有者,总之全都和上面匹配就对啦】
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
【然后可以测试一下,官方给出的例子如下】
【我只写了个测试用函数,servlet主体你自己写去吧^_^】
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>
【例子用到了JSTl 的SQL和Core标签库,自己从Sun网站下载吧
Java Web Services Developer PackJakarta Taglib Standard 1.1
 
如果在Servlet中怎么用呢,我给出个我用的测试例子
【插入包根据个人需要自行定义,不用插这么多】

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

import java.sql.*;
import javax.sql.*;

import javax.naming.*;
    private Context ctx;//上下问环境
    private DataSource dsource;//数据资源
    private Connection conn;//数据库连接
private void getCon()
    {
        try
        {
            ctx = new InitialContext();//这里用到import javax.naming.*;
            if(ctx == null)
            {
                throw new Exception("Context Look Up Error");
            }
dsource = (DataSource)ctx.lookup("java:/comp/env/jdbc/TestDB");
/**这里就是寻找刚才定义的数据资源的名字,看看jdbc/TestDB是不是就是刚才定义的数据资源名字,前面java:/comp/env/是固定的,把这两部分分开找也可以)*/
            if(dsource != null)
            {
                conn = dsource.getConnection();//获取连接
                if(conn != null)
                {
                    System.out.println("OK");
/**这里你自己随便写,你可以Statement stmt = conn.CreateStatement();
然后stmt.execute(sql语句),慢慢试验去了,我就懒得写了^_^*/
                }
            }
        }
        catch(NamingException ne)
        {
            ne.printStackTrace();
        }
        catch(SQLException sqle)
        {
            sqle.printStackTrace();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
【最后说明一下Tomcat6.0中的新的配置,就是把第一部分取出来<context>。。。。。。</context>全都取出来,然后在
工程目录/META-INF/context.xml中写明就可以了,例子如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/工程目录">
  <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000" name="jdbc/TestDB" password="javadude" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true" username="javauser"/>
  <ResourceLink global="jdbc/TestDB" name="jdbc/TestDB" type="javax.sql.DataSource"/>
</Context>
【这样配置比较好,把context标签里的单独取出来看着比较明白,最后提醒的就是数据库的驱动一定要放正确位置,实在不行就在所有的lib目录里都放上就可以了,o(∩_∩)o...哈哈】
另外水平有限,就凑活着看吧(*^__^*) 嘻嘻……
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Tomcat配置数据库连接池,可以按照以下步骤进行操作: 1. 首先,确保你已经将数据库的驱动程序(JDBC驱动)复制到Tomcat的`lib`目录下。这通常是将JDBC驱动的JAR文件放置在`$CATALINA_HOME/lib`目录中。 2. 在Tomcat的`conf`目录下创建一个新的文件夹(如果文件夹不存在),并命名为`Catalina`。在`Catalina`文件夹下创建一个新的文件夹,并以你的应用程序的上下文路径命名(例如:如果你的应用程序部署在 `/myapp` 路径下,那么就创建一个名为 `myapp` 的文件夹)。 3. 在上一步创建的文件夹中创建一个名为 `META-INF` 的新文件夹。在 `META-INF` 文件夹中创建一个名为 `context.xml` 的文件,用于配置数据库连接池。 4. 打开 `context.xml` 文件,在其中添加以下内容: ```xml <Context> <Resource name="jdbc/yourDatabaseName" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="yourUsername" password="yourPassword" driverClassName="yourDriverClass" url="yourJdbcUrl"/> </Context> ``` 请注意替换上述代码中的以下值: - `yourDatabaseName`:要使用的数据库名称。 - `yourUsername`:连接数据库所需的用户名。 - `yourPassword`:连接数据库所需的密码。 - `yourDriverClass`:数据库驱动程序的类名。 - `yourJdbcUrl`:数据库的JDBC连接URL。 你可以根据需要调整上述代码中的其他属性,如 `maxActive`(最大活动连接数)、`maxIdle`(最大空闲连接数)和 `maxWait`(最长等待连接的时间)。 5. 保存并关闭 `context.xml` 文件。 6. 重新启动Tomcat服务器,使配置生效。 现在,你已经成功配置Tomcat中的数据库连接池。你可以在应用程序中使用 `java:/comp/env/jdbc/yourDatabaseName` JNDI名称来获取数据库连接池

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值