Tomcat连接池配置与实现/JNDI

刚刚终于配置好了Tomcat6.0的连接池,唉,太不容易了,我太笨了,弄了几个小时。呵呵。
[color=blue]连接池的配置网上有很多种,我也测试了几种,第一种连接成功了[/color]
先在Tomcat\conf文件夹里面找到server.xml文件,在里面的这一段里面添加代码
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>

添加如下代码
<Resource name="jdbc/exam"        
auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="30"
maxWait="5000"
username="root"
password="lzj"
url="jdbc:mysql://localhost/exam"
maxActive="100"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"/>

然后在找到同文件夹下面的context.xml文件,在<context></context>之间添加一行代码
。引用server.xml文件中刚刚加入的部分
<ResourceLink name="jdbc/exam" global="jdbc/exam" type="javax.sql.DataSource"/>

然后再在项目的web.xml文件中加入
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/exam</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

配置就算是完成了,最主要的是连接池类的代码
下面我把连接池的代码也贴出来,已经测试成功

import java.sql.*;
import javax.sql.*;
import java.io.*;
import javax.naming.*;

public class ConnectionPool
{
private static ConnectionPool instace;
private static DataSource ds;
//获得数据源
public static DataSource createDataSource()
{
if (ds == null)
{
try
{
Context ct = new InitialContext();
if (ct == null)
System.out.println("无配置环境");
Context envContext = (Context) ct.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/exam"); //根据名称取得数据源
}
catch (NamingException e)
{
e.printStackTrace();
}
}
return ds;
}

//从连接池中取得连接对象
public static synchronized Connection getConnection() throws SQLException,NamingException{
Connection con=null;
try
{
//获取连接
con=(Connection)createDataSource().getConnection();
}
catch (Exception e)
{
e.printStackTrace();
System.out.print("Get Connection Error");
}
return con;
}
//释放连接
public static synchronized void freeConnection(Connection con){
try
{
con.close();
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("Close Connection Error");
}
}
}

在使用的时候,这样使用就可以了
先导入要使用的包javax.naming.*;因为要抛出异常使用try,
try
{
con=cp.getConnection();
}
catch (NamingException e)
{
e.printStackTrace();
}
con.setAutoCommit(false);
//下面就开始写SQL语句,最后再用pstmt.executeUpdate();
con.commit();执行语句

这就是第一种方法,测试成功,只不过这种配置出来的是共享连接,哪个web app都可以连接。还有一种是直接在context.xml中添加配置,还没有测试成功,不知道是哪里出错了,
还有一种是直接用类,先创建一些连接,使用的时拿出来。这里我也不贴代码了,呵呵,人家讲的比我清楚,地址http://jalant.iteye.com/blog/378436
http://www.iteye.com/topic/245596
在我们的WEB项目中的META-INF文件夹下建立一个context.xml,把配置代码粘贴进去,接下来基本和上面的一样.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在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名称来获取数据库连接池

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值