一、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连接池的更多相关文章

  1. Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用

    Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...

  2. Tomcat配置https加密连接

    配置https安全连接(ssl加密连接) https连接需要用到数字证书与数字签名(MD5算法),网站https连接首先需要申请数字证书,配置加密连接器,浏览器安装证书. 证书运用到RSA技术,RSA ...

  3. linux 安装jdk,tomcat 配置vsftp 远程连接

    不知不觉入行也有一年了,这两天在公司上班有空了就自己装了个vmware虚拟机,装了个红帽6.1完全命令行的操作系统,想着搭个公司现在在用的测试环境,没想到中间碰到了很多问题,不过大部分都解决了,现在可 ...

  4. Tomcat中的c3p0数据库连接池的释放

    一个项目通过c3p0获得连接池,相关代码如下: public class JdbcUtil { // 连接池的核心类 private static ComboPooledDataSource data ...

  5. JDBC连接池-C3P0连接

    JDBC连接池-C3P0连接 c3p0连接池的学习英语好的看英文原版      c3p0 - JDBC3 Connection and Statement Pooling 使用c3p0连接池  三种方 ...

  6. Spring(Bean)4 配置数据源、连接池

    <!-- 配置数据源 Mysql c3p0: 连接池. <bean id="dataSource" class="com.mchange.v2.c3p0.Co ...

  7. 配置tomcat全局c3p0连接池

    由于项目中多个应用访问同一个数据库,并部署在同一个tomcat下面,所以没必要每个应用都配置连接池信息,这样可能导致数据库的资源分布不均,所以这种情况完全可以配置一个tomcat的全局连接池,所涉及应 ...

  8. C3p0连接池配置

    在Java开发中,使用JDBC操作数据库的四个步骤如下:   ①加载数据库驱动程序(Class.forName("数据库驱动类");)   ②连接数据库(Connection co ...

  9. 转!数据库连接池概念、种类、配置(DBCP\C3P0\JndI与Tomact配置连接池)

    数据库连接池概念.种类.配置(DBCP\C3P0\JndI与Tomact配置连接池) 一.DBCP 连接:DBCP 连接池是 Apache 软件基金组织下的一个开源连接池实现. 需要的 java 包c ...

随机推荐

  1. [Objective-C语言教程]错误处理(22)

    在Objective-C编程中,错误处理由Foundation框架中提供的NSError类提供处理. 与仅使用错误代码或错误字符串相比,NSError对象封装了更丰富且更具可扩展性的错误信息. NSE ...

  2. python+selenium 定位隐藏元素

    定位隐藏要素的原理:页面主要通过“display:none”来控制元素不可见.所以我们需要通过javaScript修改display的值得值为display="block,来实现元素定位的. ...

  3. 对drf视图的理解

    视图说明 1. 两个基类 1)APIView rest_framework.views.APIView APIView是REST framework提供的所有视图的基类,继承自Django的View父 ...

  4. jQuery css()与class()的用法

    一.css()用法:   1.设置css // css(name, value) // 修改单个样式 // name:样式名 value:样式值 $("li") .css(&quo ...

  5. 一段话理解 MDX中的Select 、轴、COLUMNS、ROWS

    理解 SELECT  Understanding the SELECT statement SELECT 语句的目的是定义新的 Cube 空间,新的Cube 空间是由类似于 COLUMNS或者ROWS ...

  6. C#控制台画图形

    static void Main(string[] args) { //九九乘法 Console.WriteLine("九九乘法口诀"); ; i <= ; i++) { ; ...

  7. Bomb(要49)--数位dp

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submi ...

  8. Java 语言结构【转】

    Java 语言结构 基础:包(Package).类(Class)和对象(Object) 了解 Java 的包(Package).类(Class)和对象(Object)这些基础术语是非常重要的,这部分内 ...

  9. (转)C# 正则表达式

    最近写爬虫时需要用到正则表达式,有段时间没有使用正则表达式现在渐渐感觉有些淡忘,现在使用还需要去查询一些资料.为了避免以后这样的情况,在此记录下正则表达式的一些基本使用方法附带小的实例.让以后在使用时 ...

  10. MFRC522开发笔记

    一.了解基本概念 ①ISO-14443A协议:( 国际标准化组织:International Organization for Standardization)RFID协议的一种;   PICC:临近 ...