Tomcat DBCP(Database Connection Pool) 数据库毗连池入门先容
拓展阅读从零开始手写 mybatis (三)jdbc pool 怎样从零手写实现数据库毗连池 dbcp?
万字长文深入浅出数据库毗连池 HikariCP/Commons DBCP/Tomcat/c3p0/druid 对比
Database Connection Pool 数据库毗连池概览
c3p0 数据池入门使用教程
alibaba druid 入门先容
数据库毗连池 HikariCP 性能为什么这么快?
Apache Tomcat DBCP(Database Connection Pool) 数据库毗连池-01-入门先容
vibur-dbcp 并发、快速且功能完备的 JDBC 毗连池,提供先进的性能监控功能-01-入门先容
先容一下 tomcat dbcp
Apache Tomcat DBCP(Database Connection Pool)是一个用于管理数据库毗连的组件,通常与Apache Tomcat服务器一起使用。
它提供了一种机制来有效地管理数据库毗连,以便在高负载下提供更好的性能和可伸缩性。
以下是Tomcat DBCP的一些关键特性和工作原理:
[*]毗连池管理: Tomcat DBCP通过创建和维护一组预先配置的数据库毗连来管理毗连池。这些毗连在需要时可以被应用程序使用,并在不再需要时释放回池中。
[*]毗连池参数配置: 可以通过Tomcat的配置文件(如context.xml)大概直接在应用程序中的代码中配置毗连池的各种参数,比方最大毗连数、最小毗连数、最大等待时间等。
[*]毗连池的工作流程: 当应用程序需要与数据库进行交互时,它从毗连池中请求一个数据库毗连。假如毗连池中有空闲的毗连可用,毗连池会将一个毗连分配给应用程序。一旦应用程序完成了对数据库的操纵,它将毗连返回给毗连池,以供其他应用程序使用。
[*]毗连验证: Tomcat DBCP可以配置为在从毗连池中获取毗连时验证毗连的有效性。这可以通过执行简单的SQL查询或其他情势的毗连测试来实现。这有助于确保从池中获取的毗连是可用和有效的。
[*]性能优化: 通过维护一组已经打开的数据库毗连,Tomcat DBCP可以制止在每次数据库请求时都重新创建和销毁毗连,从而提高了性能和效率。
[*]异常处理: Tomcat DBCP可以或许处理数据库毗连的异常情况,比方数据库服务器断开毗连大概毗连超时。它会实验重新建立毗连大概返回错误信息,以便应用程序可以或许得当地处理这些异常情况。
[*]监控和管理: Tomcat DBCP提供了监控和管理毗连池的功能,可以通过JMX(Java Management Extensions)接口来查看毗连池的状态、运动毗连数、空闲毗连数等信息,并且可以通过管理工具对毗连池进行操纵。
总的来说,Tomcat DBCP是一个非常有用的工具,可以资助开发人员有效地管理数据库毗连,提高应用程序的性能和可伸缩性,并且可以通过灵活的配置来满足差别应用程序的需求。
为什么 tomcat 需要 dbcp?它有链接数据库的需求吗?
Apache Tomcat作为一个Java Servlet容器和Web服务器,并不直接涉及到与数据库的毗连。
然而,很多基于Java的Web应用程序通常需要与数据库进行交互,比方从数据库中检索数据、向数据库中写入数据等操纵。
在这种情况下,Apache Tomcat可以与数据库毗连池组件(好比DBCP)结合使用,以便有效地管理数据库毗连。
以下是为什么Apache Tomcat大概需要DBCP的一些原因:
[*]数据库毗连需求: 大多数Web应用程序需要访问数据库以存储和检索数据。这些应用程序可以是基于Java的,而且通常使用JDBC(Java Database Connectivity)来与数据库进行通信。
[*]毗连受理: 直接在应用程序中创建和管理数据库毗连大概会导致一些问题,好比毗连泄漏(未精确关闭毗连导致资源泄漏)、毗连池过载(同时打开太多毗连导致性能下降)等。毗连池组件(如DBCP)可以资助解决这些问题,提供了一种更好的方式来管理和重用数据库毗连。
[*]性能优化: 使用毗连池可以显着提高性能,由于它制止了在每次数据库请求时都重新创建和销毁毗连的开销。毗连池维护了一组已经打开的数据库毗连,这些毗连可以被应用程序重复使用,从而减少了毗连的创建和销毁次数,提高了体系的性能和效率。
[*]毗连验证和异常处理: 毗连池组件通常提供了毗连验证和异常处理的功能,可以确保从池中获取的毗连是有效的,并且可以或许处理数据库毗连的异常情况,比方数据库服务器断开毗连大概毗连超时等情况。
综上所述,尽管Apache Tomcat本身并不直接涉及与数据库的毗连,但大多数基于Java的Web应用程序通常需要与数据库进行交互。
在这种情况下,结合使用Apache Tomcat和数据库毗连池组件(如DBCP)可以提供更好的毗连受理和性能优化,从而更好地满足应用程序的需求。
tomcat 为什么不直接使用 c3p0 commons-dbcp 这些已有的?而是要本身实现
Apache Tomcat 一开始确实使用了像 Commons DBCP 和 Commons Pool 这样的外部组件来管理数据库毗连池。
然而,厥后 Apache Tomcat 团队决定开发本身的毗连池实现,即 Tomcat DBCP。
这是有几个原因的:
[*]更好的集成: 将毗连池功能直接集成到 Tomcat 中可以提供更好的性能和更好的集成。这样做可以更好地与 Tomcat 内部的线程管理、类加载器和上下文生命周期等功能集成,以便提供更同等和更可靠的毗连池管理。
[*]性能优化: Apache Tomcat 团队可以更深入地了解 Tomcat 本身的内部工作原理,以优化毗连池的性能,使其更适合与 Tomcat 一起使用。本身实现的毗连池大概会针对 Tomcat 的特定需求进行优化,以提供更好的性能和可靠性。
[*]更好的控制: 通过开发本身的毗连池实现,Apache Tomcat 团队可以更好地控制毗连池的开发和维护过程。他们可以根据本身的需求进行定制和扩展,而不受外部库的限制。
[*]解决特定问题: 有时间外部库大概存在一些限制大概问题,而开发本身的实现可以更灵活地解决这些问题。大概是由于在特定的使用情况下,已有的库无法满足 Tomcat 的需求,大概为了解决一些已知的问题而决定开发本身的实现。
总的来说,Apache Tomcat 团队决定开发本身的毗连池实现是出于对性能、集成和控制的思量。这样做可以更好地满足 Tomcat 用户的需求,并提供更优秀的毗连池管理功能。
给出 tomcat dbcp 的入门使用例子
下面是一个简单的示例,演示怎样在Apache Tomcat中使用DBCP毗连池:
[*]起首,确保你已经在Tomcat的lib目录中包含了所需的JAR文件,通常包括commons-dbcp.jar和commons-pool.jar。
[*]在你的Web应用程序的WEB-INF目录下创建一个名为context.xml的文件,并在其中配置数据库毗连池。以下是一个示例context.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>请确保将username、password和url属性替换为你的数据库毗连信息。
[*]在你的Web应用程序中,你可以通过JNDI查找来获取数据库毗连。以下是一个简单的Servlet示例,演示怎样获取数据库毗连并执行查询:
import java.io.*;import java.sql.*;import javax.naming.*;import javax.servlet.*;import javax.servlet.http.*;import javax.sql.*;public class MyServlet extends HttpServlet {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>public void doGet(HttpServletRequest request, HttpServletResponse response)<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>throws ServletException, IOException {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>response.setContentType("text/html");<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>PrintWriter out = response.getWriter();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>Connection conn = null;<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>try {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>// 查找上下文中的数据库毗连池<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>Context ctx = new InitialContext();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/TestDB");<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>// 从毗连池获取毗连<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>conn = ds.getConnection();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>// 执行查询<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>Statement stmt = conn.createStatement();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>ResultSet rs = stmt.executeQuery("SELECT * FROM your_table");<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>while (rs.next()) {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name"));<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>out.println("
");<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>}<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>} catch (Exception e) {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>e.printStackTrace();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>} finally {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>// 关闭毗连<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>try {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>if (conn != null)<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>conn.close();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>} catch (SQLException e) {<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>e.printStackTrace();<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>}<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context><?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>}<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="your_username" password="your_password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/your_database"/>
</Context>}}确保将上述代码中的your_table替换为你要查询的实际数据库表名。
[*]部署你的Web应用程序到Tomcat服务器,并访问相应的URL以查看结果。
请注意,以上示例只是一个简单的演示,实际上在生产环境中需要进行更多的配置和错误处理。
参考资料
https://github.com/apache/tomcat/tree/main/java/org/apache/tomcat/dbcp
https://github.com/seaswalker/tomcat-jdbc-notes/blob/master/note/note.md
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]