JNDI是什么呢?

就是java命名和文件夹接口。是SUN公司提供的一种标准的Java命名系统接口。

不好理解?简单说呢。他就是一个资源,放在tomcat里面的一个资源,今天我们就把数据库连接池放到tomcat中,当然你也能够放别的东西,比方Been。

ok!開始

首先我们新建web项目:

新建项目叫:JNDI_demo

然后在tomcat文件夹:F:\apache-tomcat-5.5.25\conf\Catalina\localhost下,创建一个资源。

命名就是:项目名.xml

在我这就叫:JNDI_demo.xml

<Context>
<Resource name="datasource/c3p0DataSource"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
factory="org.apache.naming.factory.BeanFactory" driverClass="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/test"
user="root"
password="root" acquireIncrement="3"
initialPoolSize="5"
maxPoolSize="10"
minPoolSize="2" />
</Context>

在这简单说下这个配置文件:

name="任意起,待会项目中要用"
type=你创建资源的类型,这里我们要创建的是c3p0连接池。相应的类全名就是:com.mchange.v2.c3p0.ComboPooledDataSource
factory不能够修改

以下就是连接池的配置信息。注意小写字母开头,你们把账号password改成自己的。再创建一个数据库叫test的。
好了。接下来我们就创建一个servlet,来获取这个连接池资源获取数据库连接。
我们新建一个Servlet: JNDI_Servlet
package com;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection; import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource; public class JNDI_Servlet extends HttpServlet { /**
* 我们获取tomcat中配置的c3p0的实践课连接池资源。
*/
private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取tomcat配置数据库连接池 try {
Context cxt = new InitialContext();
//lookup里面必须以java:comp/env/开头+你刚写的配置文件的name的值
DataSource ds = (DataSource)cxt.lookup("java:comp/env/datasource/c3p0DataSource");
Connection con = ds.getConnection(); System.out.println("con:"+con);
} catch (Exception e) {
// TODO Auto-generated catch block
throw new RuntimeException();
} } }

然后我们导入jar包(c3p0jar+mysql驱动jar):点击下载jar包

好了没有了,对了我把web.xml也放上吧,只是这个是自己生成的,我没改。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>JNDI_Servlet</servlet-name>
<servlet-class>com.JNDI_Servlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>JNDI_Servlet</servlet-name>
<url-pattern>/servlet/JNDI_Servlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

然后我们启动tomcat,然后訪问:http://localhost:8080/JNDI_demo/servlet/JNDI_Servlet

回车看见的空白,就说明成功了。我们看控制台打印的信息:

con:com.mchange.v2.c3p0.impl.NewProxyConnection@1b1bbe8

说明了我们已经成功获取了c3p0的数据库连接。这个打印的是改对象。,假设没有成功,能够给我留言。一起分享,一起学习。

JNDI配置c3p0连接池的更多相关文章

  1. Spring_day03--Spring配置c3p0连接池和dao使用jdbcTemplate

    Spring配置c3p0连接池和dao使用jdbcTemplate 1 spring配置c3p0连接池 第一步 导入jar包 第二步 创建spring配置文件,配置连接池 原始方式 (1)把代码在配置 ...

  2. Hibernate -- 配置c3p0连接池, 事务隔离级别, 管理session

    知识点1:配置c3p0连接池(了解) * 引入c3p0-0.9.1.jar * 在hibernate.cfg.xml文件中增加如下配置 <!-- C3P0连接池设定--> <!-- ...

  3. (七)Spring 配置 c3p0 连接池

    目录 在 Spring 核心配置文件中配置 c3p0 连接池 配置 JdbcTemplate 对象 在 service 层注入 userDao 在 UserDao 里面注入 JdbcTemplate ...

  4. Spring框架中 配置c3p0连接池 完成对数据库的访问

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  5. Hibernate配置C3P0连接池

    引入C3PO包 在hibernate.cfg.xml文件中配置 <!-- 数据库连接池的使用 --> <!-- 选择使用C3P0连接池 --> <property nam ...

  6. Spring框架中 配置c3p0连接池

    开发准备: 1.导入jar包: ioc基本jar jdbcTemplate基本jar c3p0基本jar 别忘了mysql数据库驱动jar 原始程序代码:不使用配置文件方式(IOC)生成访问数据库对象 ...

  7. MyBatis配置C3P0连接池

    一.导包 c3p0包     mybatis包 数据库的连接包 二.继承UnpooledDataSourceFactory的类 Mybatis 没有帮开发者实现 c3p0 数据库连接池,故需要使用者自 ...

  8. Hibernate 配置C3P0 连接池

    第一步在hibernate.cfg.xml配置 <!-- 连接池 --> <property name="hibernate.connection.provider_cla ...

  9. spring 配置c3p0连接池

    一.导入与c3p0相关的jar包 二.xml配置文件 CombopooledDataSource类中提供了相应属性的set方法,因此可是使用属性注入的方式实例化对象. 三.示例 在userServic ...

随机推荐

  1. [BZOJ5287][HNOI2018]毒瘤(虚树DP)

    暴力枚举非树边取值做DP可得75. 注意到每次枚举出一个容斥状态的时候,都要做大量重复操作. 建立虚树,预处理出虚树上两点间的转移系数.也可动态DP解决. 树上倍增.动态DP.虚树DP似乎是这种问题的 ...

  2. Problem A: 象棋比赛

    Description 1月6日,教职工象棋协会在6号楼办了一次比赛,很多老师都参加了.比赛共进行了5轮,赢1局积3分,和了1分,输了0分,你能帮忙算一下各位老师的积分吗? Input 多组测试数据, ...

  3. BZOJ 2743: [HEOI2012]采花 离线树状数组

    2743: [HEOI2012]采花 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2743 Description 萧芸斓是Z国的公主, ...

  4. JS判断图片上传时文件大小和图片尺寸

    如何读取图片的size: 首先,原生input file控件有个files属性,该属性是一个数组.数组中的元素有以下属性:lastModifiedDate,name,size,type,webkitR ...

  5. Tasker to answer incoming call by pressing power button

    nowadays, the smartphone is getting bigger in size, eg. samsung galaxy note and note 2, sorta big in ...

  6. Python中函数的参数传递与可变长参数

    转自旭东的博客原文 Python中函数的参数传递与可变长参数 Python中传递参数有以下几种类型: (1)像C++一样的默认缺省函数 (2)根据参数名传参数 (3)可变长度参数 示例如下: (1)默 ...

  7. springboot2.X集成HttpClient 发送HTTPS 请求

    1)jar <!--httpclient 发送外部https/http 请求--> <dependency> <groupId>org.apache.httpcom ...

  8. Dwz手册的补充说明和常见问题

    1.我如何在项目中使用dwz? 手册中有如下说明: 设计思路 第一次打开页面时载入界面到客户端, 之后和服务器的交互只是数据交互, 不占用界面相关的网络流量. 支持HTML扩展方式来调用DWZ组件. ...

  9. Jquery焦点图/幻灯片效果 插件 KinSlideshow

    JavaScript $(function(){         $("#KinSlideshow").KinSlideshow({                 moveSty ...

  10. idea 配置简单web

    1.创建Facets 创建web的facets,可修改web的目录路径,如java目录 2.创建artifacts 创建web aplication exploded ,添加lib包到web-inf, ...