很久没有使用jndi进行开发了,近期有个老的项目维护发现自己对数据源的配置都陌生了,这里总结下相关的资料,共有需要的朋友参考。
首先在web应用程序下的META-INF目录里建立并配置context.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdle="30"
maxWait="10000"
username="root"
password="zhangji"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"
removeAbandoned="true"
removeAbandonedTimeout="120"
/>
</Context>
name="jdbc/mysql" 表示通过Web应用程序从上下文:java:comp/env/jdbc/mysql(逻辑名称)中创建易访问的JNDI资源。上下文java:comp/env/的一部分被添加到所有的Tomcat管理器文本中。Web应用程序代码可以使用上下文来查找数据源
auth 指定如果Tomcat容器认证代表应用程序则(auth="Container"),如果应用程序以程序的方式工作则(auth="Application")
type="javax.sql.DataSource" 在查找中返回的资源类型时Javax.sql.DataSource。它也指定容器认证不支持代表Web应用程序的RDBMS
maxActive 在连接池中活动链接的最大数量。0值代表无限制
maxIdle 在连接池中未被收回的空闲连接数量。1值代表无限制
maxWait 以毫秒为单位,在抛出一个异常之前,管理器等待数据库连接回应的最长时间。1值代表一直等待
removeAbandoned="true" 和 removeAbandonedTimeout="120" 的意思表示DBCP池管理器代码回收所有的空闲超过2分钟的JDBC链接。(120秒)注意这里的配置对于那些由于不完善的开发代码而没有完全释放的连接也是如此。
第二部 在web.xml中进行相应配置
<resource-ref>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
最后编写如下代码,实现获得数据源连接:
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
Connection con = ds.getConnection();
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery("select * from members");
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println("====================");
}
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
注意:用tomcat的jndi连接池必须把mysql数据库的链接jar文件放在tomcat的lib目录下 !!!
分享到:
相关推荐
接下来,在Java代码中使用JNDI获取数据库连接: ```java import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import java.sql.Connection; public class ...
这段代码首先创建了一个`InitialContext`对象,然后通过`lookup`方法找到JNDI名称为“java:comp/env/jdbc/myDataSource”的数据源,最后获取数据库连接。 总结来说,通过JNDI在Tomcat中设置数据库连接池,可以实现...
总结一下,Tomcat 6.0通过JNDI连接数据库的步骤包括:配置`server.xml`中的数据源、在应用的`web.xml`中声明资源引用,以及在Java代码中使用JNDI查找来获取数据库连接。在实际操作中,一定要确保驱动兼容、配置正确...
4. **获取数据库连接**:通过数据源对象的getConnection()方法获取数据库连接。这个过程通常会从连接池中获取一个已存在的连接,而不是每次都创建新的。 5. **执行SQL语句**:有了数据库连接后,就可以执行SQL查询...
这段代码首先通过JNDI查找获取数据源对象,然后从数据源中获取数据库连接。这种方式不仅简化了代码,而且由于连接池的存在,可以实现连接的复用,避免了频繁创建和关闭连接带来的性能开销。 在实际应用中,为了保证...
4. **Java代码示例**:最后,在Java代码中可以通过JNDI获取数据库连接。示例代码如下所示: ```java import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; ...
本示例主要讲解如何在Tomcat6中结合JNDI(Java Naming and Directory Interface)和C3P0库来配置数据库连接池,这对于初学者理解Web应用服务器与数据库的交互方式具有很大帮助。 首先,C3P0是一个开源的JDBC连接池...
重启Tomcat服务器,然后在应用程序中通过JNDI查找并获取数据源,创建数据库连接,进行相应的数据库操作。 正确配置后,你的Tomcat 6.0服务器就能使用DBCP连接池管理数据库连接,优化数据库操作的性能,同时避免...
最后,通过`DataSource`对象获取数据库连接`Connection`,并输出连接信息。 3. **发布Servlet**:为了使Servlet生效,需要将其部署到Tomcat的webapps目录下。具体操作是在`$CATALINA_HOME/webapps`目录下创建一个名...
然后,我们可以使用该连接池对象来获取数据库连接。 注意事项 在 Tomcat 6.0 中,需要在 `WEB-INF/web.xml` 文件中添加资源环境引用,例如: ```xml <description>DB Connection <resource-env-ref-name>jdbc/...
从数据源中获取数据库连接非常简单,只需调用`getConnection()`方法即可。 ```java Connection connection = dataSource.getConnection(); ``` 4. **关闭资源**: 使用完数据库连接后,记得关闭以避免资源...
这样,应用可以通过JNDI名称来查找和获取数据库连接。 2. **查找数据源**:在Java代码中,使用`InitialContext`查找JNDI上下文中的数据源,例如: ```java Context initialContext = new InitialContext(); ...
Tomcat 中配置数据库连接池 在 Tomcat 服务器中配置数据库连接池是一个非常重要的步骤,它可以提高应用程序的性能和可靠性。在这篇文章中,我们将详细介绍如何在 Tomcat 目录下面的 Context.xml 配置文件中配置...
连接池允许程序在需要时获取数据库连接,使用完毕后归还,而不是每次连接和断开都创建新的连接,从而提高性能并减少资源消耗。 本文将详细讲解如何在Tomcat6中配置数据库连接池,并以`index.jsp`为例展示如何在Web...
JNDI提供了一种查找和定位应用程序所用资源的标准化方式,这些资源包括数据库连接、消息队列、EJBs、对象引用等。JNDI的核心概念包括: - **命名**:使用名字来标识资源。 - **目录服务**:存储命名信息和资源的...
在这段代码中,`InitialContext`用于初始化JNDI上下文,`lookup`方法用于根据JNDI名称查找数据源,最后通过数据源的`getConnection`方法获取数据库连接。 总的来说,配置Tomcat 6.0的Oracle数据库连接池涉及修改`...
4. **代码中使用**:在Java代码中,可以通过JNDI查找获取到数据源,然后通过数据源创建数据库连接: ```java Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup(...
上述代码中,我们通过JNDI获取了数据源,然后通过数据源创建数据库连接。这种方式的好处是,数据源可以管理连接池,提高性能并简化数据库连接的管理。 4. **示例项目** `jnditest` 压缩包中的`jnditest`项目很...
Tomcat 6.0数据库连接池驱动的使用,涉及到的主要知识点包括:数据库连接池的概念与作用,Tomcat内置的数据源实现(DBCP和C3P0),数据源的配置方法,JNDI的使用,以及在Java代码中获取和释放数据库连接。...