Tomcat配置连接c3p0连接池

2024-06-20 01:18

本文主要是介绍Tomcat配置连接c3p0连接池,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、Tomcat配置JNDI资源

JNDI(Java Naming and Directory Interface),Java 命名和目录接口。

JNDI的作用就是:在服务器上配置资源,然后通过统一的方式来获取配置的资源。

我们这里要配置的资源当然是连接池,这样项目中就可以通过统一的方式来获取连接池对象了。

1、导包

  需将这三个jar包置于Tomcat/lib/目录下:c3p0-0.9.5.2.jar、mchange-commons-java-0.2.11.jar、mysql-connector-java-5.1.44-bin.jar(Driver实现类),此例连接的是MySQL数据库,如果连接的是oracle还需c3p0-oracle-thin-extras-0.9.5.2.jar。

2、配置context.xml及web.xml文件

  apache-tomcat-9.0.0.M26/conf/context.xml中添加第14到25行内容

 1 <Context reloadable="true">2 3     <!-- Default set of monitored resources. If one of these changes, the    -->4     <!-- web application will be reloaded.                                   -->5     <WatchedResource>WEB-INF/web.xml</WatchedResource>6     <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>7     <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>8 9     <!-- Uncomment this to disable session persistence across Tomcat restarts -->
10     <!--
11     <Manager pathname="" />
12     -->
13   <!-- 新配置内容 -->
14 <Resource auth="Container"
15     description="DB Connection"
16     driverClass="com.mysql.jdbc.Driver"
17     maxPoolSize="100"
18     minPoolSize="2"
19     acquireIncrement="2"
20     name="jdbc/mysqlds-c3p0"
21     user="root"
22     password=""
23     factory="org.apache.naming.factory.BeanFactory"
24     type="com.mchange.v2.c3p0.ComboPooledDataSource"
25     jdbcUrl="jdbc:mysql://localhost:3306/mydb1" />
26 </Context>

参数说明:

  • name:指定资源名称,这个名称可随便给,在获取资源时需要这个名称;
  • factory:用来创建资源的工厂,这个值基本是固定的,不用修改;
  • type:资源的类型,我们要给出的类型是我们连接池的类型。
  • 其他参数为资源的属性。

  在项目中web/WEB-INF/web.xml 文件中添加配置第6至10行内容

 1 <?xml version="1.0" encoding="UTF-8"?>2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"5          version="3.1">6     <resource-ref>7         <res-ref-name>jdbc/mysqlds-c3p0</res-ref-name>  <!--与context.xml下的Resources的name属性一致-->8         <res-type>javax.sql.DataSource</res-type>9         <res-auth>Container</res-auth>
10     </resource-ref>
11 </web-app>

二、获取资源

 1 package servlet;2 3 import javax.naming.Context;4 import javax.naming.InitialContext;5 import javax.naming.NamingException;6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 import javax.sql.DataSource; 12 import java.io.IOException; 13 import java.sql.Connection; 14 import java.sql.SQLException; 15 16 @WebServlet(name = "AServlet",urlPatterns = "/AServlet") 17 public class AServlet extends HttpServlet { 18 protected void doGet(HttpServletRequest request, HttpServletResponse response) 19 throws ServletException, IOException { 20 //1、创建JNDI的上下文 21 try { 22 Context ctx = new InitialContext(); 23 //2、查询出入口 24 // Context envCtx = (Context) ctx.lookup("java:comp/env"); 25 //3、再进行二次查询,找到我们的资源 26 //使用的是名称与<Resource>元素的name对应 27 // DataSource dataSource = (DataSource) envCtx.lookup("jdbc/mysqlds-c3p0"); 28 DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/mysqlds-c3p0"); 29 Connection con = dataSource.getConnection(); 30  System.out.println(con); 31  con.close(); 32 } catch (NamingException e) { 33  e.printStackTrace(); 34 } catch (SQLException e) { 35  e.printStackTrace(); 36  } 37 38  } 39 }

 

这篇关于Tomcat配置连接c3p0连接池的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076692

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法